<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های Mohammad Shokoohi</title>
        <link>https://virgool.io/feed/@m.shokoohirad</link>
        <description>یک هنرمندِ عاشق تکنولوژی...</description>
        <language>fa</language>
        <pubDate>2026-06-07 08:55:37</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/47358/avatar/dGTxzc.png?height=120&amp;width=120</url>
            <title>Mohammad Shokoohi</title>
            <link>https://virgool.io/@m.shokoohirad</link>
        </image>

                    <item>
                <title>زبان برنامه‌نویسی C3: راهی هوشمندانه‌تر، ایمن‌تر و فراتر از زبان C</title>
                <link>https://virgool.io/@m.shokoohirad/%D8%B2%D8%A8%D8%A7%D9%86-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-c3-%D8%B1%D8%A7%D9%87%DB%8C-%D9%87%D9%88%D8%B4%D9%85%D9%86%D8%AF%D8%A7%D9%86%D9%87-%D8%AA%D8%B1-%D8%A7%DB%8C%D9%85%D9%86-%D8%AA%D8%B1-%D9%88-%D9%81%D8%B1%D8%A7%D8%AA%D8%B1-%D8%A7%D8%B2-%D8%B2%D8%A8%D8%A7%D9%86-c-q2k4h3mg84wc</link>
                <description>دنیای برنامه‌نویسی همیشه در حال تغییر است و زبان‌های جدیدی معرفی می‌شوند تا جایگزین یا مکمل زبان‌های قدیمی شوند. یکی از تازه‌ترین و جذاب‌ترین این زبان‌ها، C3 است؛ زبانی که به‌عنوان جایگزینی مدرن برای C معرفی شده و هدفش ترکیب سرعت و کنترل C با ایمنی و امکانات مدرن است.زبان برنامه‌نویسی C3 دقیقاً چیست؟در اصل، C3 زبانی است که تلاش می‌کند بهترین ویژگی‌های C — یعنی سرعت بالا، کنترل کامل روی سخت‌افزار را حفظ کند و در کنار آن ارتقاهای مدرن اضافه کند.زبان C سال‌هاست که ستون اصلی دنیای برنامه‌نویسی بوده؛ از سیستم‌عامل‌ها گرفته تا دستگاه‌های امبدد. اما واقعیت این است که C قدیمی است و با وجود قدرتش، مشکلاتی دارد که حتی برنامه‌نویسان حرفه‌ای را هم به دردسر می‌اندازد؛ مثل:مدیریت حافظه‌ی سخت و مستعد خطاریسک‌های امنیتی مثل بافر اورفلونبود ابزارهای ایمنی مدرناینجاست که C3 به‌عنوان جایگزینی برای C وارد می‌شود؛ زبانی که می‌خواهد:خوبی‌های C را نگه داردو بخش‌های دردسرساز آن را اصلاح کندبه‌عبارت دیگر، C3 می‌خواهد همان قدرت و سرعت C را ارائه دهد، اما با ایمنی بیشتر، ابزارهای بهتر، و تجربهٔ توسعهٔ امروزی‌تر.یک مثال ساده برای درک تفاوتدر زبان C:int *p = malloc(sizeof(int));
*p = 10;
free(p);اگر free را فراموش کنید یا دوبار صدا بزنید، برنامه ممکن است کرش کند یا امنیتش به خطر بیفتد.در زبان C3:let p: int = 10;در بسیاری از موارد، C3 مدیریت حافظه را ساده‌تر و ایمن‌تر می‌کند و اجازه نمی‌دهد اشتباهات رایج به‌سادگی رخ دهند.تیم سازندهٔ C3 چه هدفی دارد؟افرادی که پشت طراحی زبان C3 هستند قصد ندارند دوباره چرخ را اختراع کنند؛ بلکه می‌خواهند آن را تکامل دهند. تصور کنید زبان C را با همان قدرت و سرعت همیشگی، اما با یک ظاهر تازه و مجموعه‌ای از ویژگی‌های ایمنی مدرن در زیر پوسته.این زبان برای برنامه‌نویسان سیستم ساخته شده است — همان توسعه‌دهندگان حرفه‌ای که باید از هر ذره‌ی توان سخت‌افزارشان استفاده کنند. اما در کنار این قدرت، C3 ابزارهایی ارائه می‌دهد که هم زندگی برنامه‌نویس را آسان‌تر می‌کند و هم کدها را ایمن‌تر.در اوایل آوریل، پست‌هایی در شبکهٔ اجتماعی X (توییتر سابق) به این موضوع اشاره کردند و C3 را گزینه‌ای امیدوارکننده برای کسانی دانستند که عاشق زبان C هستند اما به دنبال چیزی مدرن‌تر و کاربرپسندتر می‌گردند.مقایسهٔ ساده برای درک بهتردر زبان C:#include &lt;stdio.h&gt;

int main() {
    int arr[3] = {1, 2, 3};
    // دسترسی خارج از محدوده
    printf(&quot;%d\n&quot;, arr[5]); 
    return 0;
}این کد بدون هشدار اجرا می‌شود، اما نتیجه‌اش می‌تواند غیرقابل پیش‌بینی و خطرناک باشد.در زبان C3:fn main() {
    let arr: [int; 3] = [1, 2, 3];
    // دسترسی خارج از محدوده بررسی می‌شود
    println(arr[5]); // خطا در زمان کامپایل یا اجرا
}در C3، چنین خطاهایی به‌طور پیش‌فرض بررسی و جلوگیری می‌شوند، و همین باعث می‌شود کدنویسی ایمن‌تر و قابل اعتمادتر باشد.چرا به یک جایگزین مثل C3 برای C نیاز داریم؟بیایید کمی عقب‌تر برویم. چرا اصلاً باید به فکر جایگزینی مثل C3 برای زبان C باشیم؟واقعیت این است که زبان C فوق‌العاده است — سریع، قدرتمند، و به شما کنترل کامل روی سخت‌افزار می‌دهد. اما این کنترل هزینه‌ای دارد. اصطلاحاتی مثل Buffer Overflow یا Dangling Pointer را شنیده‌اید؟ این‌ها کابوس‌هایی هستند که برنامه‌نویسان C را شب‌ها بیدار نگه می‌دارند. یک اشتباه کوچک کافی است تا برنامه کرش کند یا بدتر از آن، راهی برای نفوذ هکرها باز شود. در دنیای امروز که امنیت اهمیت حیاتی دارد، این مشکلات قدیمی دیگر به‌سادگی قابل‌قبول نیستند.البته این به معنای پایان کار C نیست — هنوز همه‌جا حضور دارد و بسیاری از توسعه‌دهندگان به آن وفادارند. اما با پیشرفت فناوری، جمعیتی رو به رشد به دنبال چیزی هستند که هم آشنا باشد و هم بتواند نیازهای مدرن را بهتر مدیریت کند. اینجاست که زبان C3 وارد می‌شود. می‌توانید آن را مثل نسخهٔ مدرن‌تر و باهوش‌تر C تصور کنید؛ زبانی که ویژگی‌های خانوادگی C را حفظ کرده اما چند ترفند جدید یاد گرفته است.C3 به‌طور خاص برای برنامه‌نویسی سیستم‌ها طراحی شده است — جایی که عملکرد حرف اول را می‌زند — اما در کنار آن، توری ایمنی اضافه کرده تا جلوی خطاهای رایج را قبل از آنکه به فاجعه تبدیل شوند بگیرد.یک مثال برای درک تفاوتدر زبان C:#include &lt;stdio.h&gt;
#include &lt;string.h&gt;

int main() {
    char buffer[10];
    strcpy(buffer, &quot;This string is too long!&quot;);
    printf(&quot;%s\n&quot;, buffer);
    return 0;
}این کد به‌ظاهر ساده می‌تواند باعث Buffer Overflow شود و امنیت سیستم را به خطر بیندازد.در زبان C3:fn main() {
    let buffer: [char; 10];
    buffer = &quot;This string is too long!&quot;;
    println(buffer);
}در C3، چنین خطاهایی به‌طور پیش‌فرض بررسی و جلوگیری می‌شوند. این یعنی توسعه‌دهنده می‌تواند با خیال راحت‌تر کدنویسی کند، بدون نگرانی از آسیب‌های امنیتی پنهان.چه چیزی زبان برنامه‌نویسی C3 را متمایز می‌کند؟اول از همه، این زبان توانسته یک تعادل هوشمندانه ایجاد کند: وفادار به ریشه‌های C باقی مانده، اما در عین حال امکانات مدرن و کاربردی را اضافه کرده است.۱. تمرکز بر ایمنیبرخلاف C که مدیریت حافظه کاملاً بر عهدهٔ برنامه‌نویس است، C3 ابزارهایی ارائه می‌دهد تا جلوی اشتباهات رایج گرفته شود. می‌توانید آن را مثل چرخ‌های کمکی دوچرخه تصور کنید: سرعت شما را کم نمی‌کنند، اما باعث می‌شوند در مسیر پایدارتر حرکت کنید و کمتر زمین بخورید.مثال:در C اگر اشاره‌گر اشتباه مدیریت شود، برنامه کرش می‌کند:int *p = malloc(sizeof(int));
*p = 42;
free(p);
*p = 99; // استفاده از اشاره‌گر آزاد شده → خطادر C3 چنین خطاهایی به‌طور پیش‌فرض بررسی می‌شوند:let p: int = 42;
// اشاره‌گر آزادشده یا دسترسی غیرمجاز به‌طور خودکار جلوگیری می‌شود۲. سازگاری با C (ABI Compatibility)یکی از ویژگی‌های مهم C3 این است که شما مجبور نیستید کدهای قدیمی C را دور بریزید. می‌توانید پروژه‌های بزرگ C را به‌تدریج با C3 ترکیب کنید، بدون اینکه مشکلی پیش بیاید. این همان چیزی است که به آن سازگاری ABI می‌گویند؛ یعنی C3 قوانین سطح پایین C را رعایت می‌کند و به‌خوبی با آن کنار می‌آید.مثال ترکیب:// کد C
int add(int a, int b) {
    return a + b;
}// کد C3 در همان پروژه
fn main() {
    let result: int = add(5, 7); // فراخوانی تابع C در C3
    println(result);
}۳. حفظ کارایی بالابرنامه‌نویسان سیستم — کسانی که سیستم‌عامل، درایور یا نرم‌افزارهای سطح پایین می‌نویسند — به سرعت نیاز دارند. C3 این نیاز را کاملاً درک کرده و کارایی مشابه C را حفظ می‌کند. به بیان ساده، شما قدرت خام C را دارید، اما با ایمنی بیشتر.می‌توان آن را مثل یک ماشین اسپرت با کیسهٔ هوا دانست: همچنان سریع حرکت می‌کنید، اما احتمال تصادف و نابودی کمتر است.هیاهوی پیرامون C3: مردم چه می‌گویند؟اگر در روزهای اخیر در شبکهٔ اجتماعی X گشتی زده باشید، احتمالاً بحث‌هایی دربارهٔ زبان برنامه‌نویسی C3 دیده‌اید. فضای آنلاین پر از هیجان است و دلیل خوبی هم دارد. برخی توسعه‌دهندگان آن را یک تغییر بازی می‌دانند، مخصوصاً کسانی که بارها از مشکلات و عجیب‌وغریب‌های زبان C آسیب دیده‌اند. حتی یکی از پست‌ها در X گفته بود که اگر C3 در فضای تجاری جا بیفتد، حاضر است زبان Rust — یکی از بازیگران بزرگ در برنامه‌نویسی سیستم — را کنار بگذارد. این ادعا جسورانه است!احساس عمومی در فضای آنلاین این است که C3 می‌تواند نقطهٔ تعادل خوبی باشد برای کسانی که قدرت C را می‌خواهند، اما نه دردسرهایش را. برخلاف زبان‌هایی مثل Rust یا Zig که رویکردی کاملاً متفاوت دارند، C3 بیشتر شبیه یک گام طبیعی رو به جلو است؛ انگار C کمی بالغ‌تر و عاقل‌تر شده باشد. همین ویژگی برای برنامه‌نویسانی که از قبل با C آشنا هستند جذاب است، چون نیازی ندارند یک شیوهٔ کاملاً جدید یاد بگیرند تا کدی امن‌تر بنویسند.مقایسهٔ C3 با دیگر جایگزین‌هاالبته C3 تنها تازه‌وارد این عرصه نیست. زبان‌هایی مثل Rust و Zig هم تلاش می‌کنند تاج پادشاهی C را تصاحب کنند. پس C3 در مقایسه با آن‌ها چه جایگاهی دارد؟زبان RustRust این روزها نام بزرگی است. تمرکز اصلی‌اش روی ایمنی و هم‌زمانی است؛ عالی برای جلوگیری از باگ‌ها و مدیریت چندریسمانی. اما مشکل اینجاست که یادگیری Rust سخت است و سینتکس آن شباهت کمی به C دارد. برای یک برنامه‌نویس قدیمی C، مهاجرت به Rust مثل رانندگی در سمت مخالف جاده است. در مقابل، C3 محیطی آشنا ارائه می‌دهد: همان C، اما با ارتقاهای مدرن.زبان Zigزبان Zig هم یکی دیگر از رقبای جایگزین C است. شعار اصلی‌اش سادگی و کنترل کامل است — حتی روی فرآیند ساخت (Build). این ویژگی جذاب است، اما Zig هنوز جوان است و جامعهٔ بزرگی مثل Rust ندارد. در مقابل، C3 کمی پخته‌تر و متمرکزتر به نظر می‌رسد؛ بیشتر روی پر کردن فاصلهٔ بین C و نیازهای مدرن تمرکز دارد تا بازنویسی کامل قوانین.چرا C3 متمایز است؟برخلاف برخی زبان‌های جدید که تغییرات رادیکال ایجاد می‌کنند، C3 قصد ندارد همه‌چیز را از نو بسازد. این زبان برای کسانی است که سبک C را دوست دارند اما به دنبال تجربه‌ای ایمن‌تر و روان‌تر هستند. همین جایگاه خاص باعث شده توجه‌ها به سمتش جلب شود و ارزش دارد که در آینده بیشتر زیر نظر گرفته شود، مخصوصاً وقتی افراد بیشتری آن را امتحان کنند و تجربه‌هایشان را به اشتراک بگذارند.چه کسانی پشت زبان برنامه‌نویسی C3 هستند؟هر زبان بزرگی داستانی دارد و C3 هم از این قاعده مستثنی نیست. این زبان حاصل تلاش تیمی است که از سال ۲۰۱۹ شروع به آزمایش آن کردند؛ در ابتدا به‌عنوان پروژهٔ جانبی در کنار کار روی زبان C2. حالا در آوریل ۲۰۲۵، C3 به نسخهٔ 0.7.0 رسیده و به‌سمت انتشار کامل نسخهٔ 1.0 حرکت می‌کند. یعنی شش سال کار مداوم، اصلاح و پرداختن به جزئیات تا به جایگاه امروز برسد.سازندگان این زبان تأکید دارند که C3 یک تکامل است، نه انقلاب. هدفشان کنار گذاشتن C و شروع دوباره نیست؛ بلکه می‌خواهند بر پایهٔ آنچه کار می‌کند ادامه دهند و بخش‌های مشکل‌دار را اصلاح کنند. همین رویکرد واقع‌گرایانه باعث شده جایگزین C3 با استقبال زیادی از سوی برنامه‌نویسان روبه‌رو شود.با C3 چه می‌توان ساخت؟حالا بیایید عملی‌تر نگاه کنیم. با زبان C3 چه چیزهایی می‌توان ساخت؟ از آنجا که این زبان برای برنامه‌نویسی سیستم‌ها طراحی شده، کاربردهایش جدی و سطح پایین هستند:سیستم‌عامل‌هادرایورهای سخت‌افزارنرم‌افزارهایی که نیاز به کنترل دقیق و عملکرد بالا دارنداز طرفی، سازگاری با C به شما اجازه می‌دهد پروژه‌های قدیمی را بدون بازنویسی کامل، به‌تدریج با C3 ارتقا دهید.یکی از نمونه‌های جالب، پروژهٔ vkQuake است — نسخه‌ای از بازی کلاسیک Quake که با C3 بازنویسی و اجرا شده. این یک دمو کوچک است، اما نشان می‌دهد C3 می‌تواند به‌راحتی وارد پروژه‌های واقعی شود، بدون اینکه ضرب‌آهنگ کار را از دست بدهد. چه برای دستگاه‌های کوچک امبدد و چه برای سرورهای قدرتمند، C3 توانایی لازم را دارد.آیندهٔ جایگزین C3 برای Cزبان C3 هنوز جوان است، اما به‌سرعت در حال رشد است. همان هیاهوی ایجادشده در X (توییتر سابق) حوالی ۳ آوریل تنها شروع ماجرا بود. افراد کنجکاو شده‌اند و برخی حتی شروع به آزمایش آن کرده‌اند. اگر این روند ادامه یابد، احتمالاً شاهد حضور C3 در پروژه‌های بیشتری خواهیم بود، حتی شاید شرکت‌ها هم به‌عنوان ارتقای C به آن روی بیاورند.اما آزمون اصلی، پذیرش توسط جامعهٔ برنامه‌نویسان است. آیا C3 می‌تواند تعداد کافی توسعه‌دهنده را متقاعد کند تا به آن مهاجرت کنند یا حداقل امتحانش کنند؟ پیشنهادش محکم است: سرعت و حس C، همراه با ایمنی و راحتی مدرن. اما برای ماندگاری نیاز به جامعهٔ فعال، کتابخانه‌ها و موفقیت‌های واقعی دارد. سال ۲۰۲۵ می‌تواند سال سرنوشت‌ساز این زبان باشد.جمع‌بندیاین بود یک نگاه عمیق به زبان برنامه‌نویسی C3 — جایگزین مدرن C که توجه‌ها را به خود جلب کرده است. هدفش جایگزینی کامل C نیست، بلکه ارائهٔ نسخه‌ای مدرن‌تر است که برنامه‌نویسان سیستم را راضی نگه دارد. با ترکیب ایمنی، سرعت و سازگاری با C، جایگاه خاصی در میان گزینه‌های رو‌به‌رشد دنیای برنامه‌نویسی پیدا کرده است.چه یک طرفدار قدیمی C باشید که به‌دنبال ارتقا هستید، چه صرفاً کنجکاو باشید، زبان C3 ارزش نگاه کردن دارد. هنوز در ابتدای راه است، اما پتانسیل زیادی دارد. شاید این آغاز یک جریان تازه در دنیای زبان‌های برنامه‌نویسی باشد.منبع: لینکاگر این مطلب برای شما مفید بود، خوشحال می‌شم منو در کافیته به یه قهوه مهمون کنید و به من برای تولید محتوای بهتر و قوی‌تر انگیزه بدید.</description>
                <category>Mohammad Shokoohi</category>
                <author>Mohammad Shokoohi</author>
                <pubDate>Wed, 24 Dec 2025 14:47:30 +0330</pubDate>
            </item>
                    <item>
                <title>آموزش نصب Qemu-img و کار با دیسک‌های مجازی در ویندوز</title>
                <link>https://virgool.io/@m.shokoohirad/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%86%D8%B5%D8%A8-qemu-img-%D9%88-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-%D8%AF%DB%8C%D8%B3%DA%A9-%D9%87%D8%A7%DB%8C-%D9%85%D8%AC%D8%A7%D8%B2%DB%8C-%D8%AF%D8%B1-%D9%88%DB%8C%D9%86%D8%AF%D9%88%D8%B2-uqtspckydckf</link>
                <description>در دنیای مجازی‌سازی، مدیریت دیسک‌های مجازی یکی از مهم‌ترین وظایف است. ابزار qemu-img یکی از قدرتمندترین ابزارهای خط فرمان برای ایجاد، تبدیل و مدیریت دیسک‌های مجازی محسوب می‌شود. این ابزار بخشی از پروژه‌ی QEMU است و به کاربران اجازه می‌دهد فرمت‌های مختلف دیسک مانند QCOW2، RAW، VMDK، VDI، VHD و VHDX را به راحتی ایجاد یا تبدیل کنند.اگر شما با Hyper-V، VMware، VirtualBox یا KVM کار می‌کنید، qemu-img می‌تواند به عنوان یک پل ارتباطی بین این پلتفرم‌ها عمل کند و فرمت‌های دیسک را به یکدیگر تبدیل کند.کاربردهای qemu-imgایجاد دیسک مجازی جدید با اندازه دلخواهتبدیل فرمت دیسک‌ها بین انواع مختلف (QCOW2، VHDX، VMDK و …)بررسی سلامت دیسک‌ها و رفع مشکلات احتمالیتغییر اندازه دیسک‌ها بدون از دست رفتن داده‌هاپشتیبانی از snapshot در فرمت QCOW2 برای تست و توسعهنصب qemu-img در ویندوزمرحله ۱: دانلودبه وب‌سایت Cloudbase Solutions مراجعه کنید.نسخه‌ی ویندوزی qemu-img را دانلود کنید.مرحله ۲: استخراج فایل‌هافایل ZIP را باز کنید و محتوای آن را در مسیر دلخواه (مثلاً C:\qemu) قرار دهید.همچنین می‌توانید مسیر برنامه را به Path سیستم‌عامل که در Environment Variables قرار دارد اضافه کنید که در هر لحظه از طریق خط فرمان بتوانید از این ابزار استفاده کنید.مرحله ۳: افزودن به PATH (اختیاری)(در صورت درخواست شما می‌توانم آموزش کامل انجام این‌‌کار را آماده و منتشر کنم)روی This PC راست‌کلیک کنید و Properties را انتخاب کنید.وارد بخش Advanced system settings شوید.در قسمت Environment Variables، مسیر C:\qemu را به متغیر PATH اضافه کنید.حالا می‌توانید از هر جایی در Command Prompt دستور qemu-img را اجرا کنید.بررسی نصببرای اطمینان از نصب صحیح، پنجره‌ی Command Prompt را باز کنید و دستور زیر را وارد کنید:qemu-img.exe --versionاگر نسخه‌ی برنامه نمایش داده شد، نصب موفقیت‌آمیز بوده است.دستورات پرکاربرد qemu-imgایجاد دیسک جدیدqemu-img.exe create -f qcow2 mydisk.qcow2 10Gایجاد یک دیسک مجازی با فرمت QCOW2 و حجم ۱۰ گیگابایت.تبدیل فرمت دیسکqemu-img.exe convert -O vhdx mydisk.qcow2 mydisk.vhdxتبدیل دیسک از فرمت QCOW2 به VHDX (مناسب Hyper-V).بررسی سلامت دیسکqemu-img.exe check mydisk.qcow2سلامت فایل دیسک را بررسی می‌کند.تغییر اندازه دیسکqemu-img.exe resize mydisk.qcow2 +5Gحجم دیسک را ۵ گیگابایت افزایش می‌دهد.جدول مقایسه فرمت‌هانکات مهمهرگز دیسکی که در حال استفاده توسط ماشین مجازی است را تغییر ندهید.برای Azure باید از فرمت VHD ثابت استفاده کنید.همیشه قبل از تغییر یا تبدیل دیسک، از فایل اصلی پشتیبان بگیرید.جمع‌بندیابزار qemu-img یک راهکار ساده و قدرتمند برای مدیریت دیسک‌های مجازی در ویندوز است. با نصب سریع و چند دستور پایه‌ای، می‌توانید دیسک‌های خود را ایجاد، تبدیل و مدیریت کنید. این ابزار به ویژه برای مدیران سیستم و توسعه‌دهندگان محیط‌های مجازی‌سازی بسیار ارزشمند است.اگر این مطلب برای شما مفید بود، خوشحال می‌شم منو در کافیته به یه قهوه مهمون کنید و به من برای تولید محتوای بهتر و قوی‌تر انگیزه بدید.</description>
                <category>Mohammad Shokoohi</category>
                <author>Mohammad Shokoohi</author>
                <pubDate>Wed, 17 Dec 2025 11:38:35 +0330</pubDate>
            </item>
                    <item>
                <title>خاطره بازی؛ بازسازی Wallpaperهای Nokia سری 60</title>
                <link>https://virgool.io/@m.shokoohirad/%D8%AE%D8%A7%D8%B7%D8%B1%D9%87-%D8%A8%D8%A7%D8%B2%DB%8C-%D8%A8%D8%A7%D8%B2%D8%B3%D8%A7%D8%B2%DB%8C-wallpaper%D9%87%D8%A7%DB%8C-nokia-%D8%B3%D8%B1%DB%8C-60-nq2lplyzgacm</link>
                <description>یادش بخیر، اون روزایی که موبایل فقط یه وسیله‌ی ساده برای تماس و اس‌ام‌اس بود، اما وقتی نوکیا سری 60 دستت می‌گرفتی، حس می‌کردی یه کامپیوتر کوچیک توی جیبت داری! گوشی‌هایی که باهاشون می‌شد بازی Snake رو تا بی‌نهایت ادامه داد، آهنگ زنگ‌هاشون خاص بود و والپیپرهای ساده‌شون یه دنیا خاطره می‌ساخت.نوکیا سری 60 فقط یه موبایل نبود؛ یه سبک زندگی بود. اون صفحه‌های رنگی کوچیک، آیکون‌های گرافیکی جذاب (البته برای اون موقع) و والپیپرهایی که با ذوق انتخاب می‌کردیم، همه‌شون تبدیل شدن به بخشی از خاطرات نسل ما. هر بار که گوشی روشن می‌شد و اون لوگوی نوکیا با دست‌های دراز شده ظاهر می‌شد، انگار یه دنیای تازه جلوی چشممون باز می‌شد.حالا من تصمیم گرفتم یه سفر نوستالژیک راه بندازم؛ در چند مطلب، خیلی از اون والپیپرهای خاطره‌انگیز رو بازسازی کنم و دوباره زنده‌شون کنم. آماده باشین برای یه بازگشت شیرین به دوران طلایی نوکیا سری 60!نوکیا 5530XpressMusicاین اولین موبایل لمسی من بود که باهاش تونستم وارد دنیای جدید موبایل‌های لمسی بشم و در اولین اقدام با طراحی مجدد تصاویر پس‌زمینه‌ی اون یک ادای دین و احترام به این مدل داشتم.دانلود تصاویرنوکیا 5700XpressMusicیادمه اون موقع هنوز نوجوان بودم و همه‌ی پول‌های تو جیبی‌ام رو جمع کرده بودم و رفتم یه نوکیا 5700 خریدم و این اولین موبایل من بود که منو با اسپیکرهای با کیفیت و استریو به دنیای موسیقی و لذت بردن از موسیقی حین کار یا پیاده‌روی وارد کرد.دانلود تصاویرنوکیا N73 و N90 و N93من هیچ‌وقت این مدل رو نداشتم اما تصویر پس‌زمینه‌ی اون رو روی مدل N90 خود و چند مدل دیگه دیده بودم. رنگ‌های این تصویر پس‌زمینه برای من هم جذاب بود و هم جادویی و با کیفیت نمایشگرهای موبایل‌های اون زمان این تصاویر رو به شدت از نگاه من جذاب کرده بود.دانلود تصویرامیدوارم که با استفاده‌ی این تصاویر بتونید به دنیای نوستالژی گذشته برگردید، شما چه خاطره‌ای از این دوران که به‌نظر من یکی از طلایی‌ترین دوران‌‌های استفاده از تلفن‌های هوشمند اولیه بود دارید، خوشحال میشم در بخش نظرات با هم گپ و گفتی در این زمینه داشته باشیم. راستی لایک این مطلب یادتون نره!اگر این مطلب برای شما مفید بود، خوشحال می‌شم منو در کافیته به یه قهوه مهمون کنید و به من برای تولید محتوای بهتر و قوی‌تر انگیزه بدید.</description>
                <category>Mohammad Shokoohi</category>
                <author>Mohammad Shokoohi</author>
                <pubDate>Mon, 15 Dec 2025 08:42:13 +0330</pubDate>
            </item>
                    <item>
                <title>خاطره بازی؛ نصب سیستم‌عامل MS-DOS 6.22</title>
                <link>https://virgool.io/@m.shokoohirad/%D8%AE%D8%A7%D8%B7%D8%B1%D9%87-%D8%A8%D8%A7%D8%B2%DB%8C-%D9%86%D8%B5%D8%A8-%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D8%B9%D8%A7%D9%85%D9%84-ms-dos-622-edoncnwnh6iu</link>
                <description>یادتونه اون روزایی که کامپیوترها هنوز رنگ و لعاب ویندوز و آیکون‌های خوشگل رو نداشتن؟ وقتی برای اجرای یه برنامه باید دست به کیبورد می‌بردیم و دستور می‌نوشتیم؟ همون روزایی که صدای غیژ غیژ فلاپی دیسک، بوی خاصِ تکنولوژی تازه‌وارد رو می‌داد و هر بار نصب یه سیستم‌عامل، حکم فتح قله‌ی اورست رو داشت!MS-DOS فقط یه سیستم‌عامل نبود؛ یه دروازه بود به دنیای ناشناخته‌ای که با چند خط دستور ساده، می‌تونستیم کامپیوتر رو به رقص دربیاریم. نصبش مثل یه مراسم آیینی بود؛ فلاپی‌ها رو یکی‌یکی می‌ذاشتی، صفحه‌ی سیاه با نوشته‌های سفید جلوت ظاهر می‌شد و حس می‌کردی داری وارد یه دنیای جادویی می‌شی.این مقاله قراره یه سفر نوستالژیک باشه؛ برگردیم به اون روزایی که همه‌چیز ساده‌تر بود، ولی هیجانش هزار برابر امروز. آماده‌ای؟ پس بیا با هم برگردیم به دوران طلایی MS-DOS و دوباره طعم نصب 6.22 رو بچشیم...مواد لازم برای نصب MS-DOS 6.22 روی ماشین مجازیقبل از اینکه وارد دنیای سیاه‌وسفید داس بشیم، باید ابزار کار رو جور کنیم.اینا چیزاییه که لازم داری:ماشین مجازی (Virtual Machine): می‌تونی از نرم‌افزارهایی مثل VirtualBox یا VMware استفاده کنی. هر کدومشون مثل یه آزمایشگاه کوچیکه که توش می‌تونی سیستم‌عامل‌های قدیمی رو بدون دردسر اجرا کنی. دانلود VMwareفایل‌های نصب MS-DOS 6.22: نسخه‌ی اصلی روی سه فلاپی دیسک بود، ولی الان می‌تونی ایمیج‌های اون فلاپی‌ها رو با فرمت IMG یا ISO پیدا کنی. اینا همون دیسک‌های جادویی هستن که قراره سیستم‌عامل رو برات زنده کنن. دانلود ایمیج‌های MS-DOSکمی حوصله و عشق به نوستالژی: چون نصبش مثل ویندوز نیست که فقط Next بزنی و تمام! باید مرحله‌به‌مرحله پیش بری و با دستورات ساده، حس کدنویسی دهه‌ی نودی رو تجربه کنی.یه سیستم امروزی برای اجرا: لازم نیست خیلی قوی باشه، حتی لپ‌تاپ معمولی هم جواب می‌ده. ماشین مجازی فقط یه گوشه‌ی کوچیک از رم و CPU رو می‌گیره.ساخت یک کامپیوتر مجازی با VMwareاز اونجایی که من از VMware استفاده می‌کنم، این آموزش هم با همین نرم‌افزار ادامه پیدا می‌کنه.برای شروع اول روی گزینه‌ی Create a New Virtual Machine کلیک کنید.حالا در پنچره‌ی جدید باز شده گزینه‌ی Typical رو انتخاب کنید و روی Next کلیک کنید.توی این پنجره نرم افزار VMware به شما امکان میده که با استفاده از دیسک نصاب سیستم‌عامل به شکل فیزیکی یا به شکل ISO، سیستم‌عامل رو بهش معرفی کنید که خودش تشخیص بده چیه و تنظیمات مناسب رو انجام بده!؛ ولی از اونجایی که سیستم‌عامل MS-DOS روی ISOی دیسک نوری نیست بهتره که گزینه‌ی I will install the operating system later رو انتخاب کنیم که به معنی اینه که خودمون بعدا دیسک نصاب رو به ماشین مجازی میدیم و نیازی نیست که فعلا کاری انجام بده و روی Next کلیک کنید.توی این بخش از قسمت Guest operating system گزینه‌ی Other و از بخش Version سیستم‌عامل MS-DOS رو انتخاب کنید و روی Next کلیک کنید.حالا یه اسم برای ماشین مجازیتون باید انتخاب کنید که من همون اسم پیشفرض رو گذاشتم بمونه و از طریق دکمه‌ی Browse مسیر پوشه‌ای که میخوایم ماشین مجازی توی اون ساخته بشه رو میدیم و روی Next کلیک می‌کنیم.از اونجایی که MS-DOS یه سیستم‌عامل خیلی قدیمیه بهتره انتظاراتتون رو پایین بیارید و تا جایی که میشه مقادیر رو حداقلی انتخاب کنید. من مقدار پیشفرض 2 گیگابایت رو برای حداکثر ظرفیت هارد دیسک ماشین مجازی انتخاب کردم و حالت ساخت فایل‌های دیسک رو به شکل Split تنظیم کردم که به جای یک فایل 2 گیگابایتی بیاد و اون رو به چند تکه‌ی کوچیکتر تقسیم کنه. این اختیاریه و نیازی نیست این رو مثل چیزی که من انتخاب کردم، انتخاب کنید و روی Next کلیک کنید.توی این مرحله روی گزینه‌ی Customize Hardware کلیک کنید.از اونجایی که کامپیوتر ما خیلی قدیمیه پس بهتره که درایو نوری و اداپتور شبکه رو حذف کنیم که برای این‌کار انتخاب‌شون کنید و روی دکمه‌ی Remove کلیک کنید تا حذف بشن.حالا نیاز داریم که یه درایو فلاپی دیسک به کامپیوترمون اضافه کنیم که برای این‌کار باید روی دکمه‌ی Add کلیک کنید.حالا Floppy Drive رو انتخاب کنید و روی Finish کلیک کنید.برای تکمیل کارمون درایو فلاپی رو انتخاب می‌کنیم و با گزینه‌ی Use floppy image file و دکمه‌ی Browse، دیسک اول نصاب MS-DOS رو بهش معرفی می‌کنیم.بعد از معرفی اولین دیسک نصاب داس کافیه روی Close کلیک کنید.در نهایت روی Finish کلیک کنید تا ماشین مجازی قدیمی ما ساخته بشه.حالا با استفاده از دکمه‌‌هایی که توی عکس مشخص کردم میتونیم ماشین مجازی‌مون رو اجرا و پروسه‌ی نصب MS-DOS و خاطره بازی‌مون رو شروع کنیم.به‌به، رنگ آبی و متن‌های روشن این صفحه خاطرات سالهای دور منو زنده کرد... کلید اینتر رو بفشارید تا پروسه‌ی نصب شروع بشه.نکته: اگه به هر دلیلی نیاز داشتید که به سیستم‌عامل اصلی برگردید کافیه که دکمه‌های CRTL+ALT رو بگیرید تا موس ظاهر بشه. پس اگه دیدید توی ماشین مجازی گیر کردید جای نگرانی نیست، چون روش خارج شدن ازش رو یاد گرفتید.حالا باید گزینه‌ی Configure unallocated disk space (recommended) رو انتخاب کنید و کلید Enter رو بفشارید.حالا باید کلید Enter رو بزنید تا کامپیوتر مجازی یک‌بار Restart بشه و پروسه‌ی نصب رو ادامه بدید.توی این مرحله فقط کلید Enter رو بزنید و اگه دسوت داشتید می‌تونید کمی توی این صحفه کنکاش کنید  و بعد با فشردن کلید Enter برید مرحله‌ی بعد.توی این مرحله باید مسیر نصب فایل‌های سیستمی MS-DOS رو مشخص کنید که با توجه به اینکه همین یه‌دونه درایو رو داریم بهتره طبق سنت بذاریم توی درایو C و پوشه‌ی DOS باشه و کلید Enter رو بزنید.چقدر آشناست... البته توی نسل بعدش به‌جای DOS شده Windows :))اینجا دیگه نصب شروع میشه - البته روی کامپیوترهای قدیمی چندین دقیقه کپی اون چند کیلوبایت فایل زمان می‌برد ولی روی کامپیوترهای ما اصلا فرصت نمی‌کنیم بفهمیم چی شد که یهو میگه دیسک دوم رو وارد کن و نصب رو ادامه بده!برای تعویض دیسک باید اول با دکمه‌های CRTL+ALT وارد سیستم‌عامل اصلی بشیم و از منوی بالای پنجره‌ی ماشین مجازی به این مسیر بریم:VM &gt; Removable Devices &gt; Floppy &gt; Settingsحالا باید با استفاده از دکمه‌ی Browse فایل دیسک دوم رو به ماشین مجازی بدیم و روی OK کلیک کنیم.حالا با کلیک روی پنجره‌ی MS-DOS وارد محیط ماشین مجازی میشیم و کلید Enter رو میزنیم تا نصب ادامه پیدا کنه. یادتون باشه که برای دیسک سوم هم باید این مراحل رو تکرار کنید.خب نصب به پایان رسید و قبل از هرچیزی باید دیسک سوم رو از ماشین مجازی جدا کنیم. برای این‌کار باید به این مسیر بریم و روی Disconnect کلیک کنیم.VM &gt; Removable Devices &gt; Floppy &gt; Disconnectحالا کافیه که وارد محیط ماشین مجازی بشیم و کلید Enter رو بزنیم تا پروسه‌ی نصب به اتمام برسه و کامپیوتر Restart بشه. دوبار باید کلید Enter رو بزنید.بعد از Restart ماشین مجازی خواهید دید که وارد محیط MS-DOS میشید.حالا کافیه شروع کنید باهاش کار کردن و حتی نصب ویندوز 1 تا 3.1 که دیگه اون میشه اوج هیجان توی خاطرات گذشته...برای انتقال فایل و نصب برنامه توی محیط ماشین مجازی یه راه‌کار ساده هست و اون انتقال سنتی فایل از طریق فلاپی هست! البته میدونم که نه درایو و نه دیسکش رو دارید و باید این رو هم به شکل مجازی انجام بدید...برای این‌کار بهترین ابزار، برنامه‌ی WinImage هست که از اینجا میتونید دانلودش کنید. همچنین میتونید آخرین نسخه‌ی این برنامه رو از سایت سازنده دریافت کنید و با سریالی که توی لینک قبلی به همراه نصاب WinImage دریافت کردید نصب و راه‌اندازی کنید.بعد از اون میتونید از فایل‌هایی که نیاز دارید یک یا چند ایمیج فلاپی بسازید و وارد ماشین مجازی کنید و حتی اطلاعات موجود توی ماشین مجازی رو روی یه فلاپی خالی کپی کنید و بعد با WinImage توی سیستم‌عامل اصلی استخراج کنید. دیگه از این سنتی‌تر مگه داریم :))امیدوارم که تونسته باشم بساط خاطره بازی رو برای شما هم فراهم کرده باشم، با این ‌کار میتونید همه‌ی برنامه‌ها و بازی‌هایی که برای MS-DOS ساخته شده رو اجرا کنید و لذت ببرید.اگر این مطلب برای شما مفید بود، خوشحال می‌شم منو در کافیته به یه قهوه مهمون کنید و به من برای تولید محتوای بهتر و قوی‌تر انگیزه بدید.</description>
                <category>Mohammad Shokoohi</category>
                <author>Mohammad Shokoohi</author>
                <pubDate>Sun, 14 Dec 2025 18:01:14 +0330</pubDate>
            </item>
                    <item>
                <title>فعال کردن قابلیت‌های پنهان ویندوز 11 با ابزار Vive</title>
                <link>https://virgool.io/@m.shokoohirad/%D9%81%D8%B9%D8%A7%D9%84-%DA%A9%D8%B1%D8%AF%D9%86-%D9%82%D8%A7%D8%A8%D9%84%DB%8C%D8%AA-%D9%87%D8%A7%DB%8C-%D9%BE%D9%86%D9%87%D8%A7%D9%86-%D9%88%DB%8C%D9%86%D8%AF%D9%88%D8%B2-11-%D8%A8%D8%A7-%D8%A7%D8%A8%D8%B2%D8%A7%D8%B1-vive-tkow8teohfm1</link>
                <description>یکی از مواردی که باعث می‌شود کاربران به قابلیت‌های جدید در به‌روز رسانی‌های ویندوز 11 دسترسی نداشته باشند، فعال سازی آن‌ها با اولویت منطقه و به شکل تدریجی است که باعث می‌شود کاربران حتی با به‌روز رسانی به جدیدترین نسخه‌ی ویندوز 11 نتوانند از آن‌ها استفاده کنند.چند روز پیش به دنبال راهی بودم تا بتوانم قابلیت‌های جدید ویندوز 11 مثل منوی استارت را فعال کنم که با ابزاری به نام Vive آشنا شدم.این ابزار به‌شما امکان می‌دهد تا کلید‌های پنهان سیستم‌عامل ویندوز 11 را روشن و خاموش کنید تا بین قابلیت‌های قدیمی و جدید حق انتخاب داشت باشید. همچنین در صورت وجود قابلیت‌های پنهان آزمایشی، شما میتوانید لیست آن‌ها را دیده و از بین‌شان مواردی را برای فعال سازی انتخاب کنید. هرچند که اکیداً توصیه می‌کنم تا از صحت عملکرد یک قابلیت اطمینان حاصل نکرده‌اید آن‌را فعال نکنید و کلیه‌ی مسئولیت استفاده‌ی نادرست از این ابزار به‌عهده‌ی شما خواهد بود.توجه: کماکان بهتر است که قبل از فعال سازی هر قابلیت آن‌را در یک ماشین مجازی و روی نسخه‌ای از ویندوز 11 که سیستم‌عامل اصلی شما نیست آزمایش کنید تا از بروز مشکلات ناخواسته بر روی کامپیوتر اصلی خود جلوگیری نمایید.ViVeTool چیست و چه کار می‌کند؟به زبان ساده، ViVeTool یک ابزار کوچک است که به شما اجازه می‌دهد قابلیت‌های مخفی ویندوز 11 را روشن یا خاموش کنید. مایکروسافت خیلی وقت‌ها امکانات جدید را در ویندوز قرار می‌دهد اما آن‌ها را برای همه فعال نمی‌کند؛ بلکه فقط روی بعضی دستگاه‌ها یا در نسخه‌های آزمایشی نشان می‌دهد. این یعنی ممکن است یک قابلیت روی کامپیوتر شما وجود داشته باشد، اما هنوز قفل باشد.ViVeTool کاری نمی‌کند که فایل‌های ویندوز خراب شوند یا چیزی خطرناک تغییر کند. فقط مثل یک کنترل از راه دور عمل می‌کند و به شما امکان می‌دهد این قابلیت‌های پنهان را فعال یا غیرفعال کنید. مثلاً اگر یک منوی استارت جدید در نسخه‌ی تازه‌ی ویندوز وجود داشته باشد، با ViVeTool می‌توانید آن را زودتر امتحان کنید، بدون اینکه منتظر بمانید مایکروسافت خودش آن را برای شما فعال کند.پیش‌نیازها و شروع کار با ViVeToolقبل از اینکه شروع کنید، بهتر است چند نکته را آماده کنید:نسخه‌ی ویندوز: مطمئن شوید ویندوز شما 11 نسخه‌ی 22H2 یا جدیدتر باشد. برای قابلیت‌های تازه مثل منوی استارت جدید، بهتر است 24H2 داشته باشید.نوع پردازنده: اگر کامپیوتر شما Intel یا AMD است، نسخه‌ی x64 را دانلود کنید. اگر دستگاه شما Snapdragon است، نسخه‌ی ARM64 را بگیرید.دسترسی مدیر (Admin): اجرای ViVeTool بدون دسترسی مدیر کار نمی‌کند. پس باید از گزینه‌ی Run as Administrator را برای خط فرمان در منوی استارت استفاده کنید.پشتیبان‌گیری: حتماً یک نقطه‌ی بازیابی سیستم بسازید یا اگر در ماشین مجازی کار می‌کنید، Snapshot بگیرید. چون فعال کردن قابلیت‌های آزمایشی ممکن است باعث مشکلات ظاهری یا کرش برنامه‌ها شود.ماشین مجازی (اختیاری): اگر می‌خواهید خیالتان راحت باشد، بهتر است همه‌ی تست‌ها را در یک ماشین مجازی مثل VMware یا Hyper-V انجام دهید. اینطوری سیستم اصلی شما دست‌نخورده می‌ماند.دانلود ViVeTool: آخرین نسخه‌ی ابزار را از GitHub بگیرید (مثلاً ViVeTool v0.3.4 یا جدیدتر). فایل ZIP را در یک مسیر ساده مثل C:\ViVe استخراج کنید. مسیرهای طولانی یا دارای فاصله ممکن است در خط فرمان دردسر درست کنند.استفاده‌ی پایه: دستورات و نحوه‌ی اجرابرای شروع باید یک Command Prompt با دسترسی مدیر (Admin) باز کنید. ساده‌ترین راه این است که کلیدهای Win + X را بزنید، گزینه‌ی Terminal (Admin) را انتخاب کنید و اگر لازم بود به حالت CMD تغییر دهید. بعد به پوشه‌ای بروید که فایل ViVeTool را در آن استخراج کرده‌اید، مثلاً:cd C:\ViVeساختار دستورات خیلی ساده است: ViVeTool.exe [action] [options]فعال کردن یک قابلیت:ViVeTool.exe /enable /id:12345678این دستور قابلیت مورد نظر را روشن می‌کند.غیرفعال کردن یک قابلیت:ViVeTool.exe /disable /id:12345678این دستور همان قابلیت را خاموش می‌کند.چند قابلیت همزمان:شناسه‌ها را با کاما جدا کنید:ViVeTool.exe /enable /id:12345678, 87654321بررسی وضعیت قابلیت‌ها:ViVeTool.exe /queryلیست همه‌ی تنظیمات فعال را نشان می‌دهد.بازنشانی کامل:ViVeTool.exe /fullresetهمه‌ی تغییرات شخصی‌سازی پاک می‌شوند و ویندوز به حالت پیش‌فرض برمی‌گردد.راهنمای کامل دستورات:ViVeTool.exe /?نکات مهمتغییرات معمولاً بعد از راه‌اندازی مجدد (Restart) اعمال می‌شوند.گاهی لازم است Explorer.exe را هم ری‌استارت کنید (از Task Manager) یا با دستور:taskkill /f /im explorer.exe &amp;&amp; start explorer.exeاول ایمنی: خطرات و بهترین روش‌هاViVeTool نسبت به دستکاری مستقیم رجیستری امن‌تر است، اما بی‌نقص نیست. دلیل اینکه بعضی قابلیت‌ها مخفی هستند این است که هنوز آزمایشی‌اند و ممکن است مشکلاتی ایجاد کنند. فعال کردن بی‌رویه‌ی این قابلیت‌ها می‌تواند باعث خطاهای جدی مثل صفحه‌ی آبی، گیر کردن رابط کاربری یا حتی مشکلات در برنامه‌های دیگر شود. بعضی کاربران در انجمن‌ها گزارش داده‌اند که فعال‌سازی نسخه‌های مختلف Copilot باعث تداخل با ابزارهای دسترس‌پذیری شده است.بهترین روش‌ها برای استفاده‌ی ایمنتست در محیط جداگانه: بهتر است همه چیز را در ماشین مجازی امتحان کنید. مثلاً Hyper-V امکان گرفتن Snapshot سریع دارد تا راحت بتوانید به حالت قبل برگردید.یکی یکی فعال کنید: هر بار فقط یک قابلیت را روشن کنید، سیستم را ری‌استارت کنید و تست کنید. بعد از مطمئن شدن سراغ چند قابلیت همزمان بروید.بررسی خطاها: بعد از ری‌استارت، در Event Viewer بخش System یا Application را نگاه کنید تا ببینید خطایی مربوط به FeatureManagement ثبت شده یا نه.بازگردانی سریع: اگر مشکلی پیش آمد، دستور /fullreset را اجرا کنید و ری‌استارت کنید. اگر باز هم مشکل باقی بود، دستور sfc /scannow می‌تواند فایل‌های سیستمی را تعمیر کند.توجه به نسخه‌ها: شناسه‌ها وابسته به نسخه‌ی ویندوز هستند. مثلاً یک شناسه در 24H2 ممکن است روی 23H2 کار نکند. پس قبل از هر چیز ویندوز را به‌روز کنید.بدون تضمین: مایکروسافت ممکن است در آپدیت‌ها شناسه‌ها را تغییر دهد و تنظیمات شما بی‌اثر شوند. همچنین چون ابزار متن‌باز است، همیشه فایل دانلودی را با Windows Defender یا آنتی‌ویروس اسکن کنید.نمونه‌ی ویژه: فعال‌سازی منوی استارت جدید در ویندوز 11 نسخه‌ی 24H2در ویندوز 11 یک منوی استارت تازه طراحی شده وجود دارد، اما به‌طور پیش‌فرض فعال نیست. مایکروسافت تصمیم گرفته این منو را به‌صورت تدریجی برای کاربران فعال کند. این روند از اواخر سال 2024 شروع شده، اما برای بیشتر کاربران هنوز پشت تنظیمات مخفی (پرچم‌های سرور) قفل است.در حال حاضر، همان منوی استانداردی را می‌بینید که همه با آن آشنا هستند.فعال‌سازی منوی استارت جدید در بیلد 26100.1742 به شکل مرحله‌به‌مرحلهقبل از شروع، نسخه‌ی ویندوزتان را چک کنید. پنجره‌ی نسخه با دستور winver باز می‌شود و باید عدد 26100.1742 یا جدیدتر را ببینید.مراحل آماده‌سازیآماده‌سازی ویندوز: به Settings &gt; Windows Update بروید و Check for updates را بزنید. گزینه‌ی “Get the latest updates as soon as they’re available” را هم روشن کنید تا به‌روزرسانی‌های اختیاری دریافت شوند.دانلود و استخراج ViVeTool: فایل را دانلود کنید و در یک مسیر ساده مثل C:\ViVe استخراج کنید.اجرای دستورهاباز کردن CMD با دسترسی مدیر: در منوی استارت عبارت “cmd” را جستجو کنید، روی آن راست‌کلیک کنید و گزینه‌ی Run as administrator را بزنید.رفتن به پوشه‌ی ViVeTool و فعال‌سازی:cd C:\Users\Student\Downloads\ViVeViVeTool.exe /enable /id:57048231,47205210,56328729,4843371اگر مسیر شما فرق می‌کند، مسیر پوشه‌ی خودتان را وارد کنید.اگر برای هر شناسه پیغام خطا گرفتید، بررسی کنید شماره‌ها را دقیق وارد کرده باشید و نسخه‌ی ویندوزتان به‌روز باشد.خروجی و ادامه‌ی کارپیغام‌ها: بعد از اجرا، برای هر شناسه پیغامی می‌بینید که موفقیت یا خطا را نشان می‌دهد. اگر همه چیز درست باشد، پیام‌های موفقیت (Success) نمایش داده می‌شوند.اعمال تغییرات: بهتر است یک‌بار سیستم را ری‌استارت کنید. اگر نمی‌خواهید ری‌استارت کامل کنید، می‌توانید فقط File Explorer را ری‌استارت کنید:taskkill /f /im explorer.exe &amp;&amp; start explorer.exeفعال‌سازی بخش‌های اصلی منوی استارت جدیدشناسه‌هایی که وارد کردیم هرکدام بخش مهمی از منوی تازه را روشن می‌کنند:57048231: موتور اصلی چیدمان منو47205210: بخش پیشنهادها (Recommendations)56328729: بخش جستجو (Search Integration)4843371: پنجره‌ی پین‌شده‌ها (Pinned Flyout)برای این قابلیت‌ها نیازی به تنظیمات اضافی یا حالت‌های مختلف نیست؛ فقط کافی است آن‌ها را فعال کنید.ری‌استارت و نتیجهبرای اعمال تغییرات، سیستم را ری‌استارت کنید یا از دستور زیر در خط فرمان برای ری‌استارت شدن استفاده کنید:shutdown /r /t 0بعد از راه‌اندازی مجدد، کلید Win را بزنید و منوی استارت جدید را ببینید:طراحی تمیزتر و واکنش‌پذیرترکارت‌های گرد و زیباترفاصله‌گذاری بهتر بین بخش‌هااگر منوی جدید ظاهر نشدمی‌توانید وضعیت قابلیت را بررسی کنید:ViVeTool.exe /query | findstr 57048231باید عبارت Enabled (2) نمایش داده شود تا مطمئن شوید فعال شده است.بازگشت به منوی قدیمیاگر خواستید همه چیز را به حالت قبل برگردانید:ViVeTool.exe /disable /id:57048231,47205210,56328729,4843371با این دستور دوباره همان منوی قدیمی فعال می‌شود.چرا این تغییر مهم است؟این منوی جدید مخصوصاً روی سیستم‌هایی با چند مانیتور خیلی خوب عمل می‌کند، چون شلوغی را کمتر می‌کند و دیگر نیازی به لانچرهای جانبی ندارید.گنجینه‌های پنهان دیگر در ViVeToolViVeTool بیش از ۱۰هزار شناسه دارد. اینجا چند نمونه‌ی جالب برای نسخه‌ی 24H2 آورده شده که توسط انجمن‌ها و GitHub بررسی شده‌اند:Copilot Visual Polish (45596742): فعال‌سازی انیمیشن‌های کوچک روی آیکون Copilot. دستور:ViVeTool.exe /enable /id:45596742 /variant:1Widgets Navigation Bar (47370305): اضافه کردن نوار کناری برای جابه‌جایی سریع بین داشبوردها. دستور:ViVeTool.exe /enable /id:47370305همراه با اعلان‌های از دست‌رفته (48064775).File Explorer Gallery (41040327): بازگرداندن بخش پیش‌نمایش تصاویر در فایل‌اکسپلورر. برای عکاسان خیلی کاربردی است.Studio Effects Tray Icon (46107637): دسترسی سریع به تنظیمات دوربین‌های هوشمند (مثل محو پس‌زمینه یا تماس چشمی).Speak for Me TTS (چند شناسه مثل 44950080,47123936,…): فعال‌سازی قابلیت‌های مخفی تبدیل متن به گفتار برای دسترس‌پذیری و...جمع‌بندیViVeTool فقط یک ابزار ساده نیست؛ یک ابزار قدرتمند است که به شما اجازه می‌دهد کنترل قابلیت‌های ویندوز را در دست بگیرید. این ابزار از همان APIها و پرس‌وجوهایی استفاده می‌کند که خود ویندوز دارد، اما آن‌ها را به نفع شما به کار می‌گیرد تا تصمیم بگیرید چه چیزی فعال یا غیرفعال شود.با شفاف‌سازی شناسه‌های قابلیت‌ها، شما می‌توانید ویندوز 11 را سبک‌تر و کارآمدتر کنید. در این مقاله درباره‌ی ساختار فنی، روش‌های ایمن و نمونه‌های واقعی صحبت کردیم. اما یادتان باشد: نوآوری همیشه نیاز به احتیاط دارد. با جسارت امتحان کنید، اما همیشه پشتیبان‌گیری را جدی بگیرید.من خودم از نرم‌افزار رایگان VMware Workstation استفاده می‌کنم و قبل از هر تغییر یک Snapshot می‌گیرم. اگر مشکلی پیش بیاید، به راحتی به حالت قبلی برمی‌گردم—انگار به عقب در زمان سفر کرده‌ام. ساده و مطمئن.منبع اصلی مقاله: لینکامیدوارم که این مقاله بتواند به شما در پیشبرد اهدافتان در زمینه‌ی هوش مصنوعی کمک کرده باشد، اگر این مطلب برای شما مفید بود، خوشحال می‌شوم من را در کافیته به یک قهوه مهمان کنید و به من برای تولید محتوای بهتر و قوی‌تر انگیزه دهید.</description>
                <category>Mohammad Shokoohi</category>
                <author>Mohammad Shokoohi</author>
                <pubDate>Mon, 24 Nov 2025 11:59:51 +0330</pubDate>
            </item>
                    <item>
                <title>حساسیت به نور - آموزش عکاسی از نقطه‌ی صفر!</title>
                <link>https://virgool.io/Artistic/%D8%AD%D8%B3%D8%A7%D8%B3%DB%8C%D8%AA-%D8%A8%D9%87-%D9%86%D9%88%D8%B1-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B9%DA%A9%D8%A7%D8%B3%DB%8C-%D8%A7%D8%B2-%D9%86%D9%82%D8%B7%D9%87-%DB%8C-%D8%B5%D9%81%D8%B1-ccibqkczbkos</link>
                <description>در ادامه‌ی مجموعه‌ی «عکاسی از نقطه‌ی صفر»، این بار سراغ یکی از مهم‌ترین اضلاع مثلث نوردهی می‌ریم: حساسیت به نور یا همان ISO. این مؤلفه نقش کلیدی در ثبت تصاویر در شرایط نوری مختلف داره و اگر درست تنظیم بشه، می‌تونه تفاوت بین یک عکس تار و نویزدار با یک تصویر شفاف و حرفه‌ای باشه.در این مقاله، با مفهوم ISO آشنا می‌شیم، تأثیر اون بر کیفیت تصویر رو بررسی می‌کنیم، و یاد می‌گیریم چطور در موقعیت‌های مختلف نوری، تصمیمات هوشمندانه‌تری بگیریم.ISO چیست؟ISO در عکاسی دیجیتال، عددی است که میزان حساسیت سنسور دوربین به نور را مشخص می‌کند. هرچه این عدد بیشتر باشد، سنسور نور بیشتری ثبت می‌کند و تصویر روشن‌تر می‌شود. اما این افزایش روشنایی معمولاً با یک عارضه همراه است: نویز دیجیتال.منشأ ISO در عکاسی آنالوگ (فیلمی)در گذشته، ISO به حساسیت فیلم‌های عکاسی نسبت به نور اشاره داشت. فیلم‌هایی با ISO پایین (مثل 100) برای نور زیاد مناسب بودن و فیلم‌های با ISO بالا (مثل 800 یا 1600) برای شرایط کم‌نور استفاده می‌شدن. در دوربین‌های دیجیتال، همین مفهوم با تنظیمات الکترونیکی پیاده‌سازی شده و به سنسور دوربین مربوط می‌شه.جدول کاربرد ISO در شرایط نوری مختلفنقش ISO در مثلث نوردهیدر عکاسی، سه عامل اصلی تعیین‌کننده‌ی نوردهی مناسب تصویر هستند: سرعت شاتر، آپرچر، و ISO. این سه با هم مثلث نوردهی را تشکیل می‌دهند و تنظیم هماهنگ آن‌ها، کلید ثبت یک عکس متعادل و با کیفیت است.شاتر: مدت زمان ورود نور به سنسورآپرچر: میزان باز بودن دهانه لنز برای عبور نورISO: میزان حساسیت سنسور به نوراگر یکی از این سه عنصر تغییر کند، باید دو عنصر دیگر هم متناسب با آن تنظیم شوند تا نوردهی تصویر حفظ شود.مثال کاربردیفرض کن در یک فضای کم‌نور می‌خوای عکس بگیری. اگر سرعت شاتر رو زیاد کنی تا لرزش دست ثبت نشه، نور کمتری وارد می‌شه. اگر آپرچر رو هم تا حد ممکن باز کردی ولی هنوز تصویر تاریکه، تنها راه باقی‌مونده اینه که ISO رو بالا ببری تا تصویر روشن‌تر بشه—البته با احتمال افزایش نویز.نویز چیست و چرا به وجود می‌آید؟نویز در عکاسی دیجیتال به نقاط رنگی یا دانه‌دانه‌ای گفته می‌شود که معمولاً در بخش‌های تاریک یا یکنواخت تصویر ظاهر می‌شوند. این نقاط می‌توانند کیفیت عکس را کاهش دهند و باعث شوند تصویر شفاف و حرفه‌ای به‌نظر نرسد.علت ایجاد نویزوقتی ISO را بالا می‌برید، سنسور دوربین برای ثبت نور بیشتر، سیگنال‌های الکترونیکی را تقویت می‌کند. این تقویت باعث می‌شود علاوه بر نور، خطاهای الکترونیکی و نویزهای محیطی هم ثبت شوند. نتیجه؟ ظاهر شدن نقاط رنگی ناخواسته در تصویر.راه‌های کاهش نویزاستفاده از ISO پایین در شرایط نوری مناسبعکاسی با دوربین‌هایی جدیدتر که سنسور پیشرفته‌تر دارنداستفاده از نرم‌افزارهای ویرایش تصویر برای کاهش نویز در مرحله پس‌پردازشنورپردازی بهتر در محیط عکاسی برای جلوگیری از نیاز به بالا بردن ISOاستفاده از سه‌پایه در عکاسی از سوژه‌های ثابت برای کاهش نیاز به ISO بالامدیریت نویز در مرحله پس‌پردازشاگر مجبور شدی از ISO بالا استفاده کنی، می‌تونی در مرحله ویرایش تصویر از ابزارهای کاهش نویز استفاده کنی:نرم‌افزارهایی مثل Lightroom، Photoshop، یا DxO PhotoLabاستفاده از فیلترهای کاهش نویز بدون حذف جزئیات تصویرکراپ نکردن بیش از حد تصویر، چون نویز در بزرگ‌نمایی بیشتر دیده می‌شهسوءتفاهم‌های رایج درباره ISOISO فقط روشنایی تصویر رو تغییر نمی‌ده؛ بلکه روی کیفیت، رنگ و نویز هم تأثیر دارهAuto ISO همیشه بهترین انتخاب نیست؛ در شرایط خاص، تنظیم دستی ISO نتیجه بهتری می‌دهدوربین‌های جدید در ISO بالا عملکرد بهتری دارن، اما هنوز هم ISO پایین ترجیح داده می‌شهجمع‌بندیISO یکی از عناصر کلیدی در کنترل نوردهی و کیفیت تصویر در عکاسی دیجیتال است. با درک درست از عملکرد ISO و تأثیر آن بر روشنایی و نویز، می‌تونی در شرایط نوری مختلف تصمیمات هوشمندانه‌تری بگیری و عکس‌هایی با جزئیات بهتر و نویز کمتر ثبت کنی.استفاده از ISO پایین در نور مناسب، انتخابی حرفه‌ای‌ست؛ و در شرایط کم‌نور، افزایش ISO می‌تونه راه‌حل خوبی باشه—البته با مدیریت نویز و استفاده از ابزارهای ویرایش تصویر.نظر شما چیه؟آیا تا حالا با ISO بالا یا پایین در موقعیت‌های خاص عکاسی کردید؟ چه چالش‌هایی با نویز داشتید و چطور باهاش مقابله کردید؟ تجربیاتتون رو در بخش نظرات با ما به اشتراک بگذارید—شاید راهکار شما به درد بقیه هم بخوره!اگر این مطلب برای شما مفید بود، خوشحال می‌شوم من را در کافیته یا دارمت به یک قهوه مهمان کنید و به من برای تولید محتوای بهتر و قوی‌تر انگیزه دهید.</description>
                <category>Mohammad Shokoohi</category>
                <author>Mohammad Shokoohi</author>
                <pubDate>Sun, 09 Nov 2025 15:09:06 +0330</pubDate>
            </item>
                    <item>
                <title>بررسی Zed AI: برنامه نویسی با کمک هوش مصنوعی</title>
                <link>https://virgool.io/@m.shokoohirad/%D8%A8%D8%B1%D8%B1%D8%B3%DB%8C-zed-ai-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%A8%D8%A7-%DA%A9%D9%85%DA%A9-%D9%87%D9%88%D8%B4-%D9%85%D8%B5%D9%86%D9%88%D8%B9%DB%8C-xx6a7txzzlp1</link>
                <description>توسعه‌دهندگان در انتخاب و وفاداری به ویرایشگر کد خود بسیار ثابت‌قدم هستند. کافی‌ست از کسی که سال‌ها زمان و انرژی خود را صرف یادگیری vim کرده باشد، بخواهید که از یک ادیتور دیگر استفاده کند!، این مسیری‌ست که دیگر هرگز از آن باز نمی‌گردند.برای توسعه‌دهندگان، تعویض ویرایشگر کد اتفاقی نادر — و تقریباً تاریخی — محسوب می‌شود. مسیر شخصی من از Dreamweaver (بله، واقعاً!) به Sublime Text و سپس به VS Code، سفری بود که در طول ۲۰ سال شکل گرفت. اما اخیراً، با تبدیل شدن هوش مصنوعی به بخش جدایی‌ناپذیر از جعبه‌ابزار بسیاری از توسعه‌دهندگان، نسل جدیدی از ویرایشگرهای کد در حال ظهور است که هوش مصنوعی را در مرکز تجربه‌ی توسعه‌دهنده قرار می‌دهند و وضعیت موجود را به چالش می‌کشند.در حالی که Cursor تمام تیترها را به خود اختصاص داده، تنها بازیگر میدان نیست. ماه گذشته، Zed از Zed AI رونمایی کرد — مجموعه‌ای از ابزارهای کدنویسی با کمک هوش مصنوعی که در دل یک ویرایشگر کد چشمگیر قرار گرفته‌اند.در چند هفته‌ی گذشته، Zed را به‌عنوان ابزار اصلی روزانه‌ام استفاده کرده‌ام. این مقاله نقد کامل Zed نیست، اما تجربه‌ها و برداشت‌هایم از قابلیت‌های هوش مصنوعی Zed را پس از یک ماه استفاده‌ی نسبتاً سنگین با شما به اشتراک می‌گذارم. آیا این یکی از همان لحظات تاریخی‌ست؟ آیا برای همیشه به Zed مهاجرت خواهم کرد؟ برای یافتن پاسخ با من همراه شوید.کد ادیتور Zed چیست؟من برای اولین بار اوایل امسال با Zed آشنا شدم، زمانی که متوجه شدم چند نفر از توسعه‌دهندگان جامعه‌ی Elixir از آن بسیار تعریف می‌کنند. Zed در سال ۲۰۲۳ معرفی شد و توسط همان تیمی ساخته شده که ویرایشگر GitHub Atom را توسعه داده بودند. در Zed، آن‌ها یک ویرایشگر کد سریع و مدرن ساخته‌اند. این ابزار از موتور رندرینگ اختصاصی و بسیار قدرتمندی استفاده می‌کند که با زبان Rust نوشته شده، و با تمرکز بر تجربه‌ی توسعه‌دهنده و پرداختن درست به اصول پایه، به‌تدریج طرفداران زیادی پیدا کرده است.افزودن قابلیت‌های هوش مصنوعی در کنار توجه قبلی توسعه‌دهندگان Zed به ویژگی‌های گفت‌وگوی گروهی و برنامه‌نویسی دونفره، توانایی‌های این کد ادیتور را افزوده است. مطمئن نیستم که این تغییر جهت کوچکی در مسیر توسعه‌ی آن باشد یا نه، اما در هر صورت Zed AI این ویرایشگر را از ابزاری جالب که چند ماه پیش هنوز نتوانسته بود مرا از VS Code جدا کند، به ابزاری تبدیل کرده که حالا واقعاً دوست دارم آن را امتحان کنم.ویژگی‌های Zed AI قابلیت‌های هوش مصنوعی Zed را می‌توان به‌طور کلی در سه ویژگی اصلی دسته‌بندی کرد:پنل دستیار برای گفت‌وگو با هوش مصنوعی درباره‌ی کد شمادستیار درون‌خطی برای اعمال مستقیم تغییرات در کد با کمک هوش مصنوعیدستورات سبک اسلش (/) برای افزودن زمینه‌ی بیشتر به گفت‌وگوها و تعاملات شمابیایید هرکدام را بررسی کنیم:پنل دستیار در نگاه اول، پنل دستیار شبیه به تمام رابط‌های گفت‌وگوی هوش مصنوعی‌ای‌ست که تا به حال استفاده کرده‌اید. اما در واقع، کاملاً متفاوت است. کل گفت‌وگو — چیزی که Zed آن را «context» یا زمینه می‌نامد — یک فایل متنی پیوسته است که دقیقاً مانند کار با هر فایل متنی دیگر در Zed احساس می‌شود. شما می‌توانید مکان‌نما را هر جا که خواستید ببرید، با چند مکان‌نما هم‌زمان کار کنید، از میان‌برهای صفحه‌کلید استفاده کنید، و در نتیجه فرآیند افزودن قطعات کد به زمینه‌ی گفت‌وگو کاملاً طبیعی و روان خواهد بود.میان‌بر صفحه‌کلید (&lt;-ctrl/cmd) برای وارد کردن متن انتخاب‌شده از ویرایشگر اصلی به پنل دستیار در قالب یک بلوک کد محصور وجود دارد. همچنین مجموعه‌ای از دستورات اسلش (که در ادامه بیشتر بررسی خواهیم کرد) برای تزریق کد به زمینه‌ی گفت‌وگو وجود دارد — مثلاً می‌توان یک فایل کامل یا حتی یک پوشه‌ی حاوی چند فایل را وارد کرد. این عناصر تزریق‌شده در پنل دستیار به‌صورت بخش‌هایی قابل باز و بسته شدن نمایش داده می‌شوند، تا تمرکز شما روی پرسش اصلی باقی بماند.وقتی آماده باشید، با فشردن cmd/ctrl+Enter، زمینه‌ی گفت‌وگو ارسال می‌شود و دستیار هوش مصنوعی پاسخ را به‌صورت جریان‌وار در پایین همان زمینه نمایش می‌دهد.یکی از مزایای جالب این‌که کل زمینه‌ی گفت‌وگو یک بافر متنی قابل ویرایش است که «بازنویسی تاریخچه» را بسیار ساده می‌کند — کافی‌ست بخش‌هایی از گفت‌وگو را حذف یا ویرایش کنید. حتی می‌توانید کل زمینه را کپی کرده و در یک زمینه‌ی جدید بچسبانید تا همان گفت‌وگو را در دو مسیر متفاوت ادامه دهید.من هیچ رابط گفت‌وگوی دیگری را نمی‌شناسم که دقیقاً به این شکل کار کند، و بنابراین تیم Zed شایسته‌ی تحسین هستند. آن‌ها تجربه‌ی کاربری را عالی طراحی کرده‌اند، و خودم را در حال انجام کارهای غیرکدنویسی در Zed می‌بینم (مثلاً نوشتن پیش‌نویس همین بلاگ)، فقط به این دلیل که از جابه‌جایی بین پنل دستیار و محیط اصلی بسیار لذت می‌برم.دستیار درون‌خطی (Inline Assistant)در هر جایی که بتوانید متنی را انتخاب کنید — چه در ویرایشگر اصلی، چه در ترمینال، و حتی در پنل دستیار — می‌توانید دستیار درون‌خطی را فراخوانی کرده و از آن بخواهید کد انتخاب‌شده را مستقیماً تغییر دهد.وقتی دستیار درون‌خطی را با میان‌بر cmd/ctrl+Enter فعال می‌کنید، اگر پنل دستیار نیز باز باشد، آن پنل به‌عنوان زمینه‌ی اضافی در کنار دستور درون‌خطی شما در نظر گرفته می‌شود. این موضوع در ابتدا شاید خیلی واضح نباشد، اما وقتی متوجه شوید که سیستم به این شکل کار می‌کند، ترکیب یک دستور دقیق در پنل دستیار با یک فرمان ساده درون‌خطی، به ابزاری قدرتمند تبدیل می‌شود.کدی که توسط دستیار درون‌خطی تغییر داده شده، به‌صورت یک تفاوت (diff) به شما نمایش داده می‌شود که می‌توانید آن را بپذیرید یا رد کنید. همچنین می‌توانید از چند مکان‌نما (cursor) و چند انتخاب هم‌زمان استفاده کنید تا دستیار درون‌خطی را در چند نقطه به‌طور هم‌زمان فعال کنید. من خودم از این قابلیت مرتب برای افزودن بلوک‌های توضیح (doc block) به توابع استفاده می‌کنم.یکی از دستورالعمل‌های موجود در مستندات Zed برای رفع خطاها این است که یک زمینه‌ی جدید در پنل دستیار ایجاد کنید، با استفاده از دستورات diagnostics/ و terminal/ گزارش‌های خطا و اطلاعات تشخیصی را به زمینه وارد کنید، سپس کد مشکل‌دار را انتخاب کرده و با کمک دستیار درون‌خطی، اصلاح آن را تولید کنید. این روش فوق‌العاده خوب عمل می‌کند.دستورات دستیاردر پنل دستیار، با فشردن علامت اسلش (/) می‌توانید فهرستی از دستورات موجود را مشاهده کنید. این دستورات در واقع محتوایی از کد شما یا بخش‌های دیگر ویرایشگر را به زمینه‌ی فعلی گفت‌وگو تزریق می‌کنند.برای مثال، دستور diagnostics/ خروجی‌ها و هشدارهای سرور زبان را وارد می‌کند؛ دستور file/ به شما اجازه می‌دهد یک فایل یا پوشه‌ای از فایل‌ها را انتخاب کرده و به زمینه اضافه کنید؛ و دستور fetch/ پاسخ یک درخواست HTTP را تزریق می‌کند. تمام دستورات داخلی در مستندات Zed فهرست شده‌اند.اگر دستورات داخلی تمام نیازهای شما را پوشش ندهند، می‌توانید دستورات اختصاصی خودتان را بسازید. البته، ظاهراً این امکان وجود دارد. مستندات در این زمینه کمی ناقص هستند، بنابراین خودم هنوز دستور اسلش سفارشی ایجاد نکرده‌ام، اما در تئوری این قابلیت می‌تواند راهی بسیار قدرتمند برای تزریق زمینه از منابع دیگر باشد — مثل مستندات، وب‌سایت‌ها، APIها یا فایل‌های محلی دیگر.یک دستور که شایسته‌ی اشاره‌ی ویژه است، workflow/ است. اگر آن را اجرا کرده و بخش مربوطه را باز کنید، یک پرامپت سیستمی بزرگ ظاهر می‌شود که به مدل زبانی (LLM) دستور می‌دهد تا کاربر را در مجموعه‌ای از تغییرات مرحله‌به‌مرحله راهنمایی کند و پاسخ‌ها را در قالبی بسیار خاص و ساختاریافته ارائه دهد. پنل دستیار این ساختار را تشخیص داده و «مراحل» را در قالب رابط کاربری‌ای نمایش می‌دهد که در آن می‌توانید تغییرات را گام‌به‌گام دنبال کنید.می‌توان حدس زد که هدفشان چیست. این قابلیت Zed را به نمای Composer در Cursor نزدیک‌تر می‌کند، جایی که می‌توانید به‌صورت مرحله‌به‌مرحله با دستیار کار کنید تا یک ویژگی خاص را بسازید یا بازسازی کنید — صرفاً با استفاده از پرامپت‌ها. در آزمایش‌های من، نتوانستم دستور workflow/ را به‌طور قابل‌اعتماد اجرا کنم. این دستور یک جریان کاری چندمرحله‌ای تولید می‌کرد که دچار «خطاهای حل مرحله» می‌شد، یا برخی مراحل تکراری بودند یا با مراحل قبلی تضاد داشتند. این ویژگی ظاهراً امیدوارکننده است، اما در عمل طوری‌ست که انگار باید دعا کنید و قربانی بدهید تا واقعاً کار کند!توسعه‌دهندگان واقعاً چه انتظاری از هوش مصنوعی در ویرایشگرهای کد دارند؟من تعداد زیادی توسعه‌دهنده‌ی باتجربه را می‌شناسم که یا به‌طور غیرمنطقی مخالف هوش مصنوعی هستند، یا نسبت به آن بی‌تفاوت‌اند. در مقابل، بسیاری از توسعه‌دهندگان جوان جذب ایده‌ی توسعه‌ی نرم‌افزار بدون کدنویسی و صرفاً با پرامپت شده‌اند — فقط کافی‌ست نگاهی بیندازید به ویدیوهای «چطور با Cursor این [اپلیکیشن/بازی] را در چند دقیقه ساختم» که در شبکه‌های اجتماعی دست‌به‌دست می‌شوند.بدیهی‌ست که به‌نظر من هر دو دیدگاه از اصل موضوع فاصله دارند. مزایای واقعی استفاده از هوش مصنوعی در توسعه‌ی نرم‌افزار از یک نقطه‌ی میانی و دقیق‌تر حاصل می‌شود.من هر روز از هوش مصنوعی برای کارهایی مثل این استفاده می‌کنم:فکر کردن درباره‌ی یک مسئله و مقایسه‌ی راه‌حل‌های سطح بالانوشتن مقدار کافی از کد برای «نشان دادن مسیر» تا بتوانم آن را به‌صورت خاص‌تر برای پروژه‌ی خودم استفاده کنمرفع خطاها با اشتراک‌گذاری کد و پیام خطا و دریافت اصلاح از هوش مصنوعیکارهای تکراری مثل نوشتن تست‌های واحد، مستندسازی کد و افزودن توضیحاتچیزی که انتظار ندارم — و نمی‌خواهم — این است که هوش مصنوعی تمام خطوط کد اپلیکیشن یا محصولم را بنویسد. نمی‌توانم تصور کنم چطور چنین چیزی ممکن است بدون این‌که خودم از فرآیند جدا شوم و دیگر احساس نکنم که می‌توانم بر کیفیت (یا بی‌کیفیتی) کد تأثیر بگذارم یا مسئول آن باشم. حتی اگر مدل‌ها در آینده بهتر شوند — که انتظارش را دارم — باز هم فکر می‌کنم این هدف اشتباهی‌ست که نتیجه‌اش توسعه‌دهندگان ضعیف‌تر، کدهای ضعیف‌تر و محصولات ضعیف‌تر خواهد بود.پس فعلاً، دموهای پرزرق‌وبرق Cursor برای من چندان جذاب نیستند و با چیزی که از یک دستیار هوش مصنوعی در کدنویسی انتظار دارم، هم‌خوانی ندارند.کد ادیتور Zed با ویژگی‌های متعادل هوش مصنوعی، تجربه توسعه را بهبود می‌بخشد و این ما را دوباره به Zed بازمی‌گرداند. واقعاً چقدر خوب عمل می‌کند؟اول از همه، حتی قبل از صحبت درباره‌ی هوش مصنوعی، Zed یک ویرایشگر کد مدرن، سریع و قابل‌اعتماد است که اصول پایه را به‌خوبی رعایت کرده. چون ویرایشگری تازه‌وارد است، بی‌نقص نیست، اما من با چیزی فراتر از چند ایراد جزئی در تجربه‌ی کاربری یا رابط کاربری مواجه نشدم. همچنین پشتیبانی از یکی دو زبان خاص و کمتر رایج را ندارد، اما زبان‌های محبوب کاملاً پشتیبانی می‌شوند.ویژگی‌های هوش مصنوعی Zed دقیق و با فکر طراحی شده‌اند. تجربه‌ی کاربری پنل دستیار کاملاً یکپارچه و روان است. این‌که کل گفت‌وگو به‌عنوان یک فایل متنی بزرگ در نظر گرفته می‌شود، بسیار طبیعی و راحت احساس می‌شود. و وقتی نیاز به تزریق زمینه داریم، دستورات اسلش داخلی ساده، شهودی و کاملاً کاربردی هستند.وقتی نیاز دارید هوش مصنوعی مستقیماً کد شما را تغییر دهد، دستیار درون‌خطی عملکرد بسیار خوبی دارد. ترکیب پنل دستیار با چند مکان‌نما و دستیارهای درون‌خطی، امکان ایجاد جریان‌های کاری قدرتمند و کارآمد را فراهم می‌کند.یکی از چیزهایی که Zed ندارد، تکمیل خودکار با کلید Tab توسط هوش مصنوعی است. می‌دانم بعضی‌ها عاشق این قابلیت هستند، اما همیشه احساس کرده‌ام که این نوع کدنویسی مثل بازی رولت روسی است.و همین‌جاست که می‌گویم ویژگی‌های هوش مصنوعی Zed با فکر طراحی شده‌اند. آیا تکمیل خودکار با Tab حذف شده چون هنوز ساخته نشده، یا این‌که تیم Zed ابتدا بررسی کرده‌اند که چنین قابلیتی چقدر به تجربه‌ی توسعه‌دهنده ارزش می‌افزاید؟ حس من این است که گزینه‌ی دوم درست‌تر است.مطمئنم که در آینده ویژگی‌های هوش مصنوعی بیشتری اضافه خواهند شد — دستور /workflow هنوز در حال توسعه به‌نظر می‌رسد، و احتمالاً سخت خواهد بود که در برابر وسوسه‌ی رقابت با رویکرد هوش‌محور Cursor مقاومت کنند. اما امیدوارم و اعتماد دارم که Zed تمرکز خود را بر توسعه‌دهندگان و تجربه‌ی توسعه‌دهنده حفظ کند. در حال حاضر، آن‌ها تعادل خوبی برقرار کرده‌اند.ویژگی‌های هوش مصنوعی میزبانی‌شده‌ی Zed توسط Claude پشتیبانی می‌شوند و در حال حاضر رایگان هستند. حدس می‌زنم این وضعیت دائمی نباشد، اما فعلاً جزئیاتی درباره‌ی قیمت‌گذاری منتشر نشده. با این حال، امکان افزودن کلیدهای API شخصی برای هر ارائه‌دهنده‌ی هوش مصنوعی دلخواه — از جمله Anthropic — نیز وجود دارد. بنابراین اگر این خدمات در آینده پولی شوند، می‌توانید با کلیدهای خودتان ادامه دهید. همین موضوع، حداقل برای من، Zed را به گزینه‌ای جذاب‌تر از Cursor تبدیل می‌کند که تنها راه استفاده از آن، اشتراک پولی است.جمع‌بندیخب، بعد از یک ماه استفاده، آیا شاهد آغاز یک دوران جدید هستیم؟ آیا VS Code قرار است در گوشه‌ی داک خاک بخورد و تمام توجه‌ها به Zed معطوف شود؟ پاسخ این است: بله!من واقعاً از کار با Zed لذت می‌برم، و نحوه‌ی طراحی و یکپارچه‌سازی ویژگی‌های هوش مصنوعی آن کاملاً با نیازها و انتظارات فعلی من از هوش مصنوعی هم‌خوانی دارد.اما… یک نکته وجود دارد. من در این مقاله چند بار Zed را با Cursor مقایسه کرده‌ام، و کمی با دیده‌ی شک به جریان نگاه کرده‌ام… اما انصافاً باید بگویم که هنوز به اندازه‌ی Zed، Cursor را امتحان نکرده‌ام.بنابراین، چالش من برای ماه اکتبر این است که Cursor را هم به‌طور جدی آزمایش کنم. خواهیم دید که آیا می‌تواند نظر من را تغییر دهد یا دیدگاهم نسبت به نوع ویژگی‌های هوش مصنوعی مورد نیازم را دگرگون کند یا نه.منبع اصلی این مقاله: لینکامیدوارم که این مقاله بتواند به شما در پیشبرد اهدافتان در زمینه‌ی هوش مصنوعی کمک کرده باشد، اگر این مطلب برای شما مفید بود، خوشحال می‌شوم من را در کافیته به یک قهوه مهمان کنید و به من برای تولید محتوای بهتر و قوی‌تر انگیزه دهید.</description>
                <category>Mohammad Shokoohi</category>
                <author>Mohammad Shokoohi</author>
                <pubDate>Sat, 18 Oct 2025 14:25:15 +0330</pubDate>
            </item>
                    <item>
                <title>پایان هکینتاش با جشن خداحافظی اپل!</title>
                <link>https://virgool.io/@m.shokoohirad/%D9%BE%D8%A7%DB%8C%D8%A7%D9%86-%D9%87%DA%A9%DB%8C%D9%86%D8%AA%D8%A7%D8%B4-%D8%A8%D8%A7-%D8%AC%D8%B4%D9%86-%D8%A7%D9%81%D8%AA%D8%AE%D8%A7%D8%B1%DB%8C-%D8%A7%D9%BE%D9%84-kjfmd6rhj3jd</link>
                <description>در مراسم WWDC 25 امسال که چند روز پیش برگزار شد، اپل نسخه‌ی جدید سیستم‌عامل‌های خود را با تغییرات بنیادین در ظاهر و عملکرد معرفی کرد. تقریباً یک روز پس از اینکه اپل لیست مک‌هایی که از نسخه‌ی جدید سیستم‌عامل macOS پشتیبانی می‌کنند را منتشر کرده بود، خبری منتشر شد مبنی بر این‌که macOS 26 آخرین نسخه‌ای از این سیستم‌عامل خواهد بود که برای مک‌های اینتلی باقی مانده در کانال پشتیبانی اصلی اپل عرضه خواهد شد و پس از این نسخه دیگر هیچ کامپیوتر Macای با پردازنده‌ی اینتل به نسخه‌های بعدی به روز رسانی نخواهد شد.علاوه‌بر اینکه این پایان دوره‌ی طلایی مک با پردازنده‌های اینتل است، پایان عصر سلطنت هکینتاش نیز محسوب می‌شود. به بیان خیلی ساده، در طی 3 سال آینده هکینتاش در کنار مک‌های اینتلی به تاریخ خواهد پیوست و پس از آن برای تجربه‌ی macOS ناگزیر باید به سراغ روش‌های مجازی سازی یا خرید یک دستگاه اپلی رفت!هکینتاش فرصتی بود برای کاربرانی که به دلایل مختلف نیاز داشتند تا macOS را روی کامپیوترهای خود تجربه کنند. از طرفی ساخت یک کامپیوتر هکینتاش که به شکل قابل قبولی پایدار باشد نیز یکی از بزرگترین چالش‌ها بود که بسیاری را در مسیر رسیدن به آن ناکام گذاشت. ولی با تمام این چالش‌ها، هکینتاش توانست یکی از آن روش‌های جایگزینی باشد که بخشی از کاربران را به دنیای جدیدی وارد کرد. بسیار بعد از تجربه‌ی هکینتاش مجاب شدند تا وارد اکوسیستم اپل شوند و بسیاری هم با هکینتاش سالها از محیط macOS لذت برندند و با چالش‌هایی که یک کامپیوتر هکینتاش در طی استفاده ممکن است ایجاد کند دست و پنجه نرم کردند.خوشبختانه باوجود پروژه‌ی OpenCore Legacy Patcher به احتمال خیلی زیاد بسیاری از مک‌های قدیمی و هکینتاش‌ها میتوانند به آخرین نسخه‌ای که برای این معماری عرضه می‌شود به روز رسانی شوند و اپل با به‌روز رسانی محیط macOS، کاربران را با یک جشن خداحافظی زیبا از نوع Liquid Glass بدرقه خواهد کرد.سال 2028 دقیقا جاییست که هکینتاش به نفس‌های آخر خود می‌رسد و این پروژه‌ی جذاب و پرچالش احتمالاً برای همیشه کنار گذاشته خواهد شد.</description>
                <category>Mohammad Shokoohi</category>
                <author>Mohammad Shokoohi</author>
                <pubDate>Wed, 11 Jun 2025 17:36:53 +0330</pubDate>
            </item>
                    <item>
                <title>تجربه‌ی من در استفاده از Ollama روی گرافیک RX5700XT 8GB</title>
                <link>https://virgool.io/@m.shokoohirad/0076-wftezqgu065g</link>
                <description>حدود یک ماه پیش، نیاز داشتم از سرویس Ollama استفاده کنم؛ اما متأسفانه متوجه شدم که کارت گرافیک AMD RX 5700 XT 8GB موجود در سیستم من از این سرویس پشتیبانی نمی‌کند. به همین دلیل، جست‌وجوی راهکاری برای انتقال بار پردازشی مدل‌های زبانی به GPUرا آغاز کردم. خوشبختانه، به نتیجه مطلوبی دست یافتم که از نظر عملکرد تا حد زیادی قابل قبول بود.با توجه به شرایط نامناسب اقتصادی و دشواری بسیاری از افراد در تهیه‌ی یک کارت گرافیک قدرتمند، خرید چنین سخت‌افزاری شاید برای برخی کاربران Ollama منطقی نباشد. از این رو، استفاده از کارت گرافیکی که بتواند تا حد زیادی کندی اجرای نسخه‌ی محلی Ollama را کاهش دهد، گامی مؤثر به سمت بهینه‌سازی عملکرد محسوب می‌شود.در ابتدا، به بررسی کارت‌های گرافیکی AMD که به‌طور رسمی توسط Ollama پشتیبانی می‌شوند، خواهیم پرداخت. سپس، گزینه‌هایی را که می‌توان به‌صورت غیررسمی برای اجرای Ollama فعال کرد، مورد ارزیابی قرار خواهیم داد.تصویر شماره ۱در تصویر شماره ۱ مشاهده می‌کنید که کدام کارت‌های گرافیک قابلیت اجرای مدل‌های زبانی را به‌صورت محلی دارند. این بدان معناست که کاربران می‌توانند با استفاده از این کارت‌های گرافیکی AMD، مدل‌های زبانی را بدون نگرانی و با سرعتی قابل قبول به‌صورت محلی اجرا کنند.اکنون به بررسی کارت‌های گرافیکی خواهیم پرداخت که امکان فعال‌سازی غیررسمی آن‌ها در Ollama وجود دارد و می‌توانند عملکرد بهتری نسبت به پردازش مبتنی بر CPU ارائه دهند.این دسته از کارت‌های گرافیکی، هرچند به‌طور رسمی توسط Ollama پشتیبانی نمی‌شوند، اما با تنظیمات خاص و استفاده از روش‌های جایگزین می‌توان آن‌ها را برای اجرای مدل‌های زبانی بهینه‌سازی کرد. بهره‌گیری از این گزینه‌ها می‌تواند به کاربران کمک کند تا سرعت پردازش را افزایش دهند و تجربه‌ی روان‌تری در اجرای مدل‌های محلی داشته باشند:تصویر شماره‌ ۲در جدول شماره ۲، می‌توانید مشاهده کنید که آیا GPU یا APU شما به‌صورت غیررسمی قابلیت راه‌اندازی در Ollama را دارد یا خیر.در این جدول، منظور از dGPU همان کارت گرافیک مستقل است که به‌عنوان یک واحد پردازشی مجزا در سیستم عمل می‌کند. همچنین، APU به پردازنده‌های گرافیکی یکپارچه‌ای اطلاق می‌شود که در CPU تعبیه شده‌اند و معمولاً تحت عنوان «آنبرد» شناخته می‌شوند.همچنین لازم است به این نکته توجه داشته باشید که به‌دلیل به‌روزرسانی‌های مداوم و عدم تعهد تیم توسعه‌ی Ollama نسبت به پشتیبانی از کارت‌های گرافیکی غیررسمی، احتمال دارد که برخی از این پردازنده‌های گرافیکی در نسخه‌های آینده دیگر قابل راه‌اندازی نباشند. این تغییرات می‌توانند به‌واسطه‌ی اصلاحات در نرم‌افزار، تغییرات در معماری پردازش، یا بهینه‌سازی‌های جدید رخ دهند.بنابراین، کاربران باید این احتمال را در نظر بگیرند و در صورت استفاده از سخت‌افزارهای غیررسمی، آمادگی مواجهه با محدودیت‌های احتمالی در نسخه‌های آتی را داشته باشند. بررسی تغییرات و اطلاع از به‌روزرسانی‌های جدید می‌تواند به تصمیم‌گیری بهتر شما کمک کند.در تجربه‌ی شخصی خود، پس از راه‌اندازی کارت گرافیک RX 5700 XT با حافظه‌ی ۸ گیگابایتی، بهبود چشمگیری در سرعت اجرای مدل‌های زبانی به‌صورت محلی مشاهده کردم. این تفاوت به اندازه‌ای محسوس بود که پس از پردازش روی GPU، عملکرد کند CPU دیگر برایم قابل تحمل نبود.به‌عنوان مثال، مدل Gemma3 با ۱ میلیارد پارامتر و حجم تقریبی ۸۰۰ تا ۹۰۰ مگابایت، هنگام پردازش روی CPU به‌شدت کند و همراه با تأخیر عمل می‌کند. همچنین، اجرای مدل‌های بزرگ‌تر با ۴ میلیارد یا ۸ میلیارد پارامتر تأثیر منفی بیشتری بر تجربه‌ی کاری خواهد داشت. برای من، مدل Gemma3 با ۱۲ میلیارد پارامتر روی CPU به‌طور کامل اجرا نشد.نکته‌ی مهم دیگری که باید در نظر گرفته شود، تأثیر مستقیم حجم رم سیستم و رم کارت گرافیک بر سرعت اجرای مدل‌ها است. به‌عنوان نمونه، کارت گرافیک ۸ گیگابایتی من توانایی اجرای مدل‌های ۸ میلیارد پارامتر و بالاتر را دارد، اما با مقداری کندی مواجه می‌شود. البته، در مدل Gemma3 با ۱۲ میلیارد پارامتر، این کاهش سرعت تا حدی قابل تحمل است. بنابراین، برای داشتن تجربه‌ی پردازشی روان‌تر، پیشنهاد می‌شود از کارت گرافیکی با ۱۲ گیگابایت رم یا بیشتر استفاده شود.سخن پایانیاگر قصد دارید Ollama را روی کارت گرافیکی اجرا کنید که به‌صورت رسمی پشتیبانی نمی‌شود، می‌توانید مقاله‌ای را که پیش‌تر در این زمینه نوشته‌ام، مطالعه کنید. در این مقاله، روش‌هایی برای فعال‌سازی غیررسمی کارت‌های گرافیکی و بهینه‌سازی عملکرد آن‌ها ارائه شده است.برای دسترسی به این مقاله، می‌توانید از لینک زیر استفاده کنید: https://virgool.io/@m.shokoohirad/0073-twwemespt92i با مطالعه‌ی این مقاله، اطلاعات جامعی درباره‌ی نحوه‌ی راه‌اندازی Ollama روی کارت‌های گرافیکی غیررسمی کسب خواهید کرد.امیدوارم که این مقاله بتواند به شما در پیشبرد اهدافتان در زمینه‌ی هوش مصنوعی کمک کرده باشد، اگر این مطلب برای شما مفید بود، خوشحال می‌شوم من را در کافیته یا دارمت به یک قهوه مهمان کنید و به من برای تولید محتوای بهتر و قوی‌تر انگیزه دهید.</description>
                <category>Mohammad Shokoohi</category>
                <author>Mohammad Shokoohi</author>
                <pubDate>Sun, 18 May 2025 13:23:48 +0330</pubDate>
            </item>
                    <item>
                <title>آموزش به‌روز رسانی Ollama برای GPUهای AMD که پشتیبانی نمی‌شوند</title>
                <link>https://virgool.io/@m.shokoohirad/0075-mba6ugbd1rvz</link>
                <description>در مقاله‌ی قبل به چگونگی نصب و اجرای Ollama برای پردازنده‌های AMD که پشتیبانی نمی‌شوند پرداختم، حال در این آموزش می‌خواهم نحوه‌ی به‌روز رسانی Ollama را برای مواقعی که نسخه‌ی جدید این ابزار منتشر می‌شود برای شما توضیح دهم.یکی از دلایلی که باعث می‌شود همیشه نسخه‌ی نصب شده‌ی Ollama را به‌روز رسانی کنید، فارغ از بهینه‌سازی و قابلیت‌های برنامه، انتشار مدل‌های جدید هوش مصنوعی است که ممکن است روی نسخه‌های قدیمی اجرا نشوند. به همین دلیل، بهتر است که همیشه آخرین نسخه‌ی Ollama را نصب داشته باشید. مخصوصاً الان که نسخه‌ی جدید Qwen شرکت علی‌بابا منتشر شده و گفته شده که Qwen3 قابلیت‌ها و توانایی‌های به مراتب بهتر و بیشتری نسبت به مدل‌های پیشین خود دارد.در این آموزش فرض بر این است که شما با استفاده از مقاله‌ی قبلی موفق شده‌اید که پشتیبانی از GPU کامپیوتر خود را به Ollama اضافه کنید. اگر به هر دلیلی هنوز این‌کار را نکرده‌اید، بهتر است که ابتدا طبق مقاله‌ی قبلی این‌کار را انجام دهید و سپس برای به‌روز رسانی Ollama از این آموزش استفاده کنید.در گام نخست بهتر است که Ollama را از بخش System Tray ببندید تا حین به‌روز رسانی با مشکل یا خطای نوشتن فایل‌های جدید روبرو نشوید.حال کافیست که وارد این لینک شوید و بسته به نسخه‌ی ROCm مورد استفاده، یکی از دو نسخه‌ی Ollama را دانلود کنید.نکته: مستطیل قرمز رنگ سازگار با ROCm 5.7 و مستطیل زرد رنگ سازگار با ROCm 6.2.4 است؛ البته در آینده ممکن است که نسخه‌های ROCm با شماره‌هایی که در این آموزش وجود دارد، متفاوت باشد که شما باید با توجه به آن نسخه‌ها، گزینه‌ی مناسب را دانلود کنید.پس از دانلود کافیست که فایل فشرده را Extract کنید و سپس در میان فایل‌های Extract شده به این مسیر بروید:ollama-windows-amd64\lib\ollama\rocm به دنبال فایل rocblas.dll بگردید و سپس آن را حذف کنید. چرا که ما قبلاً در هنگام نصب Ollama در مقاله‌ی قبل، این فایل را با نمونه‌ی  سازگار با ROCm پردازنده‌ی گرافیکی خود جایگزین کرده‌ایم.حال کافیست به مسیر نصب نسخه‌ی قبلی Ollama در ویندوز رفته و فایل‌های نسخه‌ی جدید را جایگزین فایل‌های قبلی کنید.حال بهتر است برای اطمینان از صحت عملکرد نسخه‌ی به‌روز رسانی شده در PowerShell یا CMD دستور زیر را وارد کنید:ollama serveنتیجه باید چنین چیزی باشد:در چند خط انتهایی خواهید دید که نام کارت گرافیک‌ کامپیوتر شما نوشته خواهد شد، در غیر این‌صورت ممکن است مراحل را به درستی انجام نداده باشید و بهتر است که دستورالعمل‌ها را مجدداً یک‌به‌یک بررسی و بازبینی کنید.اگر حین وارد کردن این دستور خطایی نمایش داده شده، مطمئن شوید که Ollama از بخش System Tray بسته شده است و مجدد دستور را وارد و امتحان کنید.کار تمام است و Ollama به نسخه‌ی جدید به‌روز رسانی شده و کماکان شما میتوانید از GPU خود در این برنامه استفاده کنید.امیدوارم که این آموزش بتواند به شما در پیشبرد اهدافتان در زمینه‌ی هوش مصنوعی کمک کرده باشد، اگر این مطلب برای شما مفید بود، خوشحال می‌شوم من را در کافیته یا دارمت به یک قهوه مهمان کنید و به من برای تولید محتوای بهتر و قوی‌تر انگیزه دهید.</description>
                <category>Mohammad Shokoohi</category>
                <author>Mohammad Shokoohi</author>
                <pubDate>Tue, 29 Apr 2025 15:23:33 +0330</pubDate>
            </item>
                    <item>
                <title>نوشتن کاراکاتر # در لی‌آوت استاندارد فارسی ویندوز 10/11</title>
                <link>https://virgool.io/@m.shokoohirad/0074-jtqseoazrkcq</link>
                <description>یکی از مشکلاتی که کاربران در استفاده از لی‌آوت استاندارد صفحه‌کلید فارسی در ویندوز 10 و 11 دارند، عدم توانایی در نوشتن کاراکتر # است. به‌شخصه جستجوهای زیادی انجام دادم و همچنین بعضی دوستان هم درنهایت مجبور به اصلاح نقشه‌ی کلید‌ها شدند تا بتوانند بدون دردسر کاراکتر # را تایپ کنند. من در نهایت به روشی رسیدم که روی صفحه‌کلید‌هایی با بخش Num Pad قابل انجام است و به راحتی و بدون تغییر زبان به انگلیسی میتوانید این کاراکتر را تایپ کنید.برای این‌کار کافی‌ست که کلید Alt را نگه داشته و سپس عدد 35 را وارد کنید. خواهید دید که به سادگی کاراکتر #  تایپ خواهد شد.البته این محدود به همین کاراکتر نیست و شما با ترکیب Alt + اعداد مختلف میتوانید انواع و اقسام اموجی‌ها و کاراکترها را تایپ کنید.کماکان به‌دنبال راهی هستم که بتوان از این روش یا روش مشابه در صفحه‌کلید‌هایی که بدون بخش Num Pad هستند نیز به سادگی کاراکتر # را نوشت و به محض پیدا کردن روش مناسب این مقاله را به‌روز رسانی خواهم کرد.امیدوارم که این آموزش برای شما مفید بوده باشد، اگر این مطلب برای شما مفید بود، خوشحال می‌شوم من را در کافیته یا دارمت به یک قهوه مهمان کنید و به من برای تولید محتوای بهتر و قوی‌تر انگیزه دهید.</description>
                <category>Mohammad Shokoohi</category>
                <author>Mohammad Shokoohi</author>
                <pubDate>Mon, 28 Apr 2025 17:43:57 +0330</pubDate>
            </item>
                    <item>
                <title>نصب و راه‌اندازی Ollama روی ویندوز و GPUهایی که پشتیبانی نمی‌شوند!</title>
                <link>https://virgool.io/@m.shokoohirad/0073-twwemespt92i</link>
                <description>ما در دوره‌ای زندگی می‌کنیم که تب و تاب استفاده از مدل‌های هوش مصنوعی به شدت داغ است و همه از این مدل‌ها صحبت می‌کنند. همچنین باید توجه داشت که اجرای یک مدل زبانی بزرگ نیاز به منابع سخت‌افزاری قابل توجه‌ای دارد و روی اکثر کامپیوترهایی که ما در خانه یا محل کار داریم ممکن است اجرای آن‌ها با چالش‌هایی از جمله پر شدن حافظه‌ی RAM و عدم پشتیبانی از کارت گرافیک (GPU) و ... روبرو شود که همه‌ی این موارد می‌تواند باعث اجرای کند و بعضا سخت این مدل‌ها روی کامپیوترهای ضعیف شوند که در تجربه‌ی کاربری نهایی ما از این مدل‌ها تاثیر منفی خواهد داشت.هدف من در این آموزش، معرفی مدل‌های بزرگ هوش مصنوعی نیست و فرض من بر این است که شما اطلاعات اولیه‌ای از LLMها دارید. همچنین قصد دارم که به شما کمک کنم که در صورتی که یک کامپیوتر قابل قبول دارید اما کارت گرافیک آن پشتیبانی نمی‌شود، شانس خود را برای راه‌اندازی کارت گرافیک روی Ollama امتحان کنید تا کامپیوتر شما بتواند پردازش‌های هوش مصنوعی را با سرعت بیشتری انجام دهد و یک تجربه‌ی قابل قبول را برای شما به همراه داشته باشد.توجه: این آموزش برای Ollama نسخه‌ی ویندوز آماده شده است.مرحله‌ی اول نصب Ollama:نرم‌افزار Ollama یک ابزار متن‌باز است که به کاربران امکان اجرای مدل‌های زبانی بزرگ (LLM) روی دستگاه‌های شخصی را می‌دهد. این نرم‌افزار به شما اجازه می‌دهد بدون نیاز به اینترنت یا سرورهای قدرتمند، از مدل‌های هوش مصنوعی مانند Llama استفاده کنید.برای نصب این برنامه ابتدا به وب‌سایت این برنامه مراجعه کنید، با توجه به محدودیت دسترسی برای IPهای ایرانی بهتر است از سرویس‌های DNS یا یک ابزار مناسب استفاده کنید:https://ollama.comبعد از ورود به سایت، روی دانلود کلیک کنید تا به صفحه‌ انتخاب سیستم‌عامل هدایت شوید. در این بخش ویندوز را انتخاب و Ollama را دانلود کنید.حجم دانلودی نرم‌افزار حدودا 970 مگابایت تا 1 گیگابایت است. پس از دانلود، نصاب این برنامه را اجرا و مراحل نصب که خیلی ساده و بدون پیچیدگی است را جلو ببرید تا Ollama نصب شود.بررسی صحت عملکرد Ollamaبا توجه به اینکه ویندوز دارای چند محیط خط فرمان است، بسته به دلخواه CMD یا PowerShell را اجرا کنید و دستور زیر را در آن بنویسید:ollamaنتیجه باید چنین چیزی باشد:اگر نتیجه چیزی غیر از این بود، یک‌بار محیط خط فرمان را کامل ببنید و مجدد آن را اجرا و دستور بالا را بنویسد، اگر باز هم نتیجه مثل تصویر نبود، بهتر است که یک‌بار دیگر با دقت Ollama را حذف و نصب کنید و جهت اطمینان یک‌بار کامپیوتر را Restart کرده و مجدداً تلاش کنید.دانلود یک مدل برای شروع به کار و تست پشتیبانی Ollama از GPUحال بهتر است که یک مدل دانلود و اجرا کنیم تا از صحت عملکرد Ollama و همچنین پشتیبانی یا عدم پشتیبانی آن از GPU مطمئن شویم.برای شروع بهتر است که یکی از مدل‌های سبک و با پارامتر کم، مثلا 1 تا 3 میلیارد پارامتر را انتخاب کنیم، مثل مدل‌های Gemma3 1B یا Llama3.1 یا مشابه آن را دانلود کنید.برای این‌کار وارد سایت Ollama شوید و سپس از بخش Models یکی از مدل‌ها را انتخاب کنید. من در اینجا مدل Gemma3 1B را انتخاب می‌کنم.حال از بخش 3، دستور مربوط به نصب این مدل را کپی و در خط فرمان قرار می‌دهم تا نصب شود. این فرایند بسته به سرعت اینترنت ممکن است از چند ثانیه تا چند دقیقه زمان ببرد.بعد از دانلود و راه‌اندازی مدل، در خط فرمان خواهید دیک که Ollama مدل را اجرا کرده و آماده‌ی گرفتن پرامپت است. با نوشتن دستور زیر میتوانید از محیط پرامپت‌ نویسی خارج شوید:/byeقبل از اینکه به بررسی پشتیبانی یا عدم پشتیبانی Ollama از GPU برسیم، ابتدا از قسمت System Tray ویندوز سرویس Ollama را با گزینه‌ی Quit Ollama ببندید تا دستورات بعدی که قرار است وارد کنید کار کنند و Error ندهند.بررسی پشتیبانی از GPUبرای بررسی اینکه آیا Ollama از گرافیک AMD شما پشتیبانی می‌کند یا خیر این دستور را تایپ کنید:ollama serveسپس خطوطی که نوشته می‌شوند را بررسی کنید تا به خطی برسید که توضیحاتی مربوط به کارت گرافیک را داده است. اگر گرافیک شما پشتیبانی شود، باید چنین پیامی را داشته باشید:اگر گرافیک شما پشتیبانی شود، میتوانید با خیال راحت از مدل‌های هوش مصنوعی استفاده کنید و مطمئن باشید که بخش اعظم بار پردازشی روی کارت‌گرافیک کامپیوتر شما خواهد بود و سرعت به مراتب بالاتر و تجربه‌ی باکیفیت‌تری خواهید داشت.ولی اگر با پیام‌هایی مبنی بر عدم پشتیبانی از کارت‌گرافیک روبرو شدید بهتر است که طبق دستور العمل زیر مراحل را طی کنید تا Ollama بتواند از کارت گرافیک شما برای پرادازش‌های هوش مصنوعی استفاده کند.رفع مشکل عدم پشتیبانی از کارت‌های گرافیک AMDبرای اینکه بدانید کد GPU کارت‌گرافیک شما چیست به این لینک مراجعه کنید و ببینید مدل گرافیک شما در مقابل کدام کد نوشته شده است. برای مثال سری گرافیک‌های AMD RX 5700 و AMD RX 5700 XT کد مقابل آنها در ستون GPU Arches این کد gfx1010 است.ابتدا این کد را برای مدل گرافیکی که دارید پیدا کنید تا در ادامه به سادگی بتوانید به فایل‌های درست دسترسی داشته باشید.بعد از پیدا کردن کد GPU، باید موارد مورد نیاز را یک به یک دانلود، نصب و راه‌اندازی کنیم.مرحله‌ی اول، به‌روز رسانی درایور کارت گرافیکابتدا آخرین نسخه‌ی درایور کارت گرافیک را دانلود و نصب کنید. این‌کار به شما اطمینان می‌دهد که می‌توانید ادامه‌ی کار را با کمترین مشکل به‌پیش ببرید.مرحله‌ی دوم، نصب AMD ROCm™ Software ابزار ROCm یک نرم‌افزار متن‌باز از شرکت AMD است که شامل مدل‌های برنامه‌نویسی، ابزارها، کامپایلرها، کتابخانه‌ها و محیط‌های اجرایی برای توسعه‌ی راه‌حل‌های هوش مصنوعی و پردازش با عملکرد بالا (HPC) روی پردازنده‌های گرافیکی این شرکت می‌باشد. ROCm به‌طور ویژه برای هوش مصنوعی مولد و برنامه‌های HPC بهینه‌سازی شده است و امکان مهاجرت کدهای موجود را از پلتفرم‌های دیگر به این پلتفرم به‌راحتی فراهم می‌کند.در زمان نگارش این مقاله برای این آموزش، نسخه‌های 6.2.4 و 5.7.1 سازگاری کاملی به جهت راه‌اندازی GPUهای پشتیبانی نشده دارند.اگر میخواهید بسته به اینکه چه نسخه‌ی جدیدی برای این‌کار مناسب است، به مرحله‌ی بعدی بروید و در آنجا مشخص خواهد بود که ابزارهای بعدی با چه نسخه‌ای سازگار هستند و شما به این مرحله باز گردید و نسخه‌ی جدید سازگار را دانلود کنید.برای دانلود ابزار HIP SDK که شامل پیشنیازهای ROCm و باقی موارد می‌شود، ابتدا وارد این لینک شوید و سپس بسته به اینکه از ویندوز 10/11 استفاده می‌کنید یا ویندوز سرور یکی از نسخه‌های سازگار و یکسان با ROCmlibs را دانلود کنید.مرحله‌ی سوم، دانلود فایل‌های اصلاح شده GPUابتدا وارد این لینک شوید و سپس به بخش دوم راهنمای نصب یعنی Update ROCm Libraries رفته و در آنجا یک یا دونسخه از پچ‌های مربوط به راه‌اندازی GPU وجود دارد که با نام‌هایی مانند ROCmlibs for 6.2.4 و مشابه آن مشخص شده‌اند.بسته به نسخه‌ای که از HIP SDK نصب کرده‌اید و یا اینکه با توجه به محدودیت‌هایی که ممکن است در آینده پیش بیایید، بهتر است که نسخه‌ی ROCmlibs و HIP SDK یکسان باشد. پس در انتخاب این دو مورد دقت زیادی داشته باشید.حال وارد لینک ROCmlibs for 6.2.4 یا نسخه‌های دیگر آن شوید و از بخش Assets نسخه‌ی مطابق با کد GPU خود را دانلود کنید.نکته: این بخش برای هر کد GPU دو نسخه از پچ را برای دانلود قرار داده است. نسخه‌ی -xnack و نسخه‌ی -no xnack که بهتر است شما هر دو نسخه را دانلود کنید و داشته باشید.اینکه xnack چیست خود نیاز به یک مقاله‌ی جداگانه دارد که بی‌شک در رفرنس‌های فارسی به این موضوع آنچنان که باید پرداخته نشده است، ولی به صورت کلی یک قابلیت در GPUها و APUهای شرکت AMD است که به پردازنده‌ی گرافیکی اجازه‌ی مدیریت اطلاعات در RAM یا حافظه‌ی مجازی را می‌دهد. البته این قابلیت در اغلب کارت‌های گرافیکی AMD ممکن است غیر فعال باشد.پینشهاد می‌کنم که اگر از گرافیک‌های سری RX 4xx و RX 5xx و همچنین سری RX 5xxx استفاده می‌کنید، از پچ -no xnack استفاده کنید. همچنین برای اطمینان از اینکه GPU شما آیا از xnack پشتیبانی می‌کند یا خیر می‌توانید به این مسیر بروید:C:\Program Files\AMD\ROCm\6.2\binنکته: به‌جای شماره‌ی 6.2 باید با توجه به نسخه‌ی HIP SDK این مورد اصلاح شود.سپس یک خط فرمان در این مسیر باز کنید و این دستور را بنویسید و کلید اینتر را بفشارید:.\hipInfo.exeباید چنین اطلاعاتی به شما نمایش داده شود:برای من در بخش gcnArchName نوشته شده -gfx1010:xnack که یعنی GPU کارت گرافیک کامپیوتر من میتواند از -xnack استفاده کند. ممکن است که برای برخی مدل‌ها +xnack نوشته شده باشد که این یکی دیگر از Modeهای این قابلیت است.نکته بسیار مهم: با اینکه برای من نوشته شده که از -xnack پشتیبانی می‌شود، ولی در حین فعال سازی GPU نتوانستم که با فایل‌های مربوط به این حالت، در Ollama بار پردازشی را روی GPU قرار دهم و مجبور به استفاده از فایل‌های -no xnack شدم. پس شما هم اگر دیدید که با یک حالت GPU راه‌اندازی نمی‌شود، با حالت دیگر نیز تست کنید تا به احتمال خیلی زیاد GPU برای شما نیز راه‌اندازی شود.مرحله‌ی چهارم، جایگزینی فایل‌های اصلاح شدهدر این مرحله باید فایل‌های دانلود شده را جایگزین فایل‌های قبلی در Ollama یا ابزارهایی که از Ollama استفاده می‌کنند مانند نرم‌افزار Msty کنیم. هیچ تفاوتی بین فایل‌های -xnack و -no xnack در این مرحله نیست و هر دو به یک شکل انجام می‌شوند. پس فارغ از اینکه کدام نسخه را دانلود کرده‌اید این کار را انجام دهید.ابتدا وارد مسیر نسب نرم‌افزار Ollama و پوشه‌ی rocm شوید:C:\Users\%USERNAME%\AppData\Local\Programs\Ollama\lib\ollama\rocm** به‌جای %USERNAME% نام کاربری ویندوز خود را وارد کنید. **حال فایل rocblas.dll موجود در پچ دانلود شده را جایگزین فایل قبلی در پوشه‌ی rocm کنید.سپس وارد پوشه‌ی rocblas در مسیر بالا شوید و در آن یک پوشه‌ی دیگر به نام library خواهید دید که بهتر است آن را پاک کنید و پوشه‌ی library موجود در پچ دانلود شده را جای آن کپی کنید.البته طبق برخی منابع گفته شده که میتوانید پوشه‌ی library پچ را با پوشه‌ی library پیشفرض Ollama ادغام کنید ولی چنین کاری را پیشنهاد نمی‌کنم. چون در رفرنس اصلی این مقاله تاکید شده که پوشه‌ی library پیشفرض Ollama را باید پاک کنید.بعد از انجام این مراحل کار تمام است و باید بررسی کنید که آیا Ollama از GPU کامپیوتر شما پشتیبانی می‌کند یا خیر. اگر تمام مراحل را به درستی پیش رفته باشید، به احتمال خیلی زیاد میتوانید GPU را فعال کنید ولی کماکان احتمال این موضوع وجود دارد که در آینده برخی از گرافیک‌های قدیمی‌تر دیگر نتوانند به خوبی با این پچ کار کنند.نکات تکمیلیبرای به‌روز رسانی Ollama به نسخه‌های جدیدتر، بعد از اعمال این پچ بهتر است که از فایل رسمی Ollama استفاده نشود و از این لینک در بخش Assets آخرین نسخه‌ی موجود را دانلود و جایگزین نسخه‌ی قبلی کنید تا پچ شما از کار نیافتد.همچنین بهتر است که از مدل‌های هوش مصنوعی استفاده کنید که حجم‌شان برابر یا نصف حجم vRam کارت گرافیک باشند. چرا که با افزایش حجم مدل و تعداد پارامترهای آن ممکن است کامپیوتر و GPUی شما از پس پردازش حجیم مدل‌هایی با میزان پارامتر بالا بر نیاید.پیشنهاد من به شما به این شکل است:پردازنده تا 8 هسته، Ram تا 32 گیگ و گرافیک تا 8 گیگابایت vRam =&gt; مدل‌هایی 0.5 تا 10 میلیارد پارامترپردازنده تا 16 هسته، Ram تا 64 گیگ و گرافیک تا 16 گیگابایت vRam =&gt; مدل‌هایی تا 20 میلیارد پارامترپردازنده تا 32 هسته، Ram تا 128 گیگ و گرافیک تا 24 گیگابایت vRam =&gt; مدل‌هایی تا 30 میلیارد پارامترنکته: این پیشنهاد‌ها به شکل تقریبی هستند و ممکن است بسته به مدل هوش مصنوعی و موارد دیگر پردازش این تعداد پارارمتر برای هر کدام از این رنج‌های پیشنهادی متفاوت باشد.امیدوارم که این آموزش بتواند به شما در پیشبرد اهدافتان در زمینه‌ی هوش مصنوعی کمک کرده باشد، اگر این مطلب برای شما مفید بود، خوشحال می‌شوم من را در کافیته یا دارمت به یک قهوه مهمان کنید و به من برای تولید محتوای بهتر و قوی‌تر انگیزه دهید.</description>
                <category>Mohammad Shokoohi</category>
                <author>Mohammad Shokoohi</author>
                <pubDate>Mon, 21 Apr 2025 10:50:15 +0330</pubDate>
            </item>
                    <item>
                <title>نصب و راه‌اندازی کامپایلر زبان Rust در ویندوز 10 و 11</title>
                <link>https://virgool.io/codenevis/0072-sxmgz1ksojkt</link>
                <description>در این مقاله، به بررسی گام به گام فرآیند نصب و راه‌اندازی Rust در ویندوز با استفاده از ABI GNU (به جای پیش‌فرض MSVC) می‌پردازیم. این راهنما به شما کمک می‌کند تا محیط توسعه Rust خود را تحت ویندوز تنظیم کرده و برنامه‌های خود را با زبان Rust به راحتی کامپایل کنید.نصب Rust با ابزار rustupابزارrustup، مدیر نسخه‌های Rust است که نصب و نگهداری از toolchainهای مختلف Rust را ساده می‌کند. برای نصب rustup، مراحل زیر را دنبال کنید:به صفحه رسمی نصب Rust مراجعه کنید یا از دستور زیر در محیط‌هایی مانند PowerShell یا CMD استفاده نمایید:curl --proto &#x27;=https&#x27; --tlsv1.2 -sSf https://sh.rustup.rs | shفرایند نصب راه‌اندازی شده و شما را از طریق مراحل اولیه ی راهنمای نصب عبور می‌دهد. پس از اتمام، مطمئن شوید که rustup به‌درستی نصب شده است.برای این‌کار از دستور زیر استفاده کنید:rustup --version۲. نصب Toolchain مربوط به ABI GNUبه طور پیش‌فرض، Rust از نسخهٔ MSVC استفاده می‌کند؛ بنابراین برای تغییر به نسخهٔ GNU، مراحل زیر را انجام دهید:نصب Toolchain GNU:rustup toolchain install stable-x86_64-pc-windows-gnuتنظیم نسخه پیش‌فرض به GNU:rustup default stable-x86_64-pc-windows-gnuاضافه کردن هدف (target) GNU به Toolchain:rustup target add x86_64-pc-windows-gnuاین دستورات اطمینان می‌دهند که هنگام کامپایل کردن برنامه‌ها، از تنظیمات مرتبط با GNU استفاده خواهد شد.۳. نصب ابزارهای لازم برای Linkerدر زمانی که از ABI GNU استفاده می‌کنید، به یک لینک‌کننده از مجموعه ابزارهای GNU (مانندmingw-w64) نیاز دارید. برای این منظور، بهترین گزینه استفاده از محیط MSYS2 است:دانلود و نصب MSYS2:به وب‌سایت msys2.org مراجعه کرده و نسخهٔ مناسب ویندوز خود را دانلود و نصب کنید.به‌روزرسانی MSYS2:پس از نصب، MSYS2 را اجرا کنید و دستور زیر را وارد نمایید تا بسته‌های MSYS2 به‌روز شوند:pacman -Syuدر صورت نیاز، ترمینال را بسته و دوباره باز کنید و دستور به‌روز‌رسانی را تکرار کنید.نصب کامپایلر GNU (mingw-w64):pacman -S mingw-w64-x86_64-gccپس از نصب، از طریق دستور زیر بررسی کنید که نسخه‌ی صحیح gcc در دسترس است:gcc --versionاین مراحل، محیط لازم برای لینک کردن برنامه‌های Rust با ABI GNU را فراهم می‌کنند.۴. کامپایل کردن برنامه‌های Rust با ABI GNUاکنون که محیط Rust و ابزارهای مرتبط آماده هستند، می‌توانید برنامه‌های Rust را به راحتی با ABI GNU کامپایل نمایید. دو روش رایج برای این کار وجود دارد:الف) استفاده مستقیم از rustcفرض کنید فایل برنامه شما به نامrust_hello.rs قرار دارد. این دستور خط فرمان برنامه را به‌صورت مستقیم کامپایل می‌کند:rustc --target=x86_64-pc-windows-gnu rust_hello.rsدستور بالا یک فایل اجرایی تولید می‌کند که از تنظیمات GNU بهره می‌برد.ب) استفاده از Cargo (ابزار مدیریت پکیج Rust)Cargo ابزار پیش‌فرض برای مدیریت پروژه‌های Rust است که وابستگی‌ها و فرآیند ساخت را ساده می‌کند. در داخل دایرکتوری پروژه، با داشتن فایلCargo.toml، می‌توانید دستور زیر را اجرا کنید:cargo build --target=x86_64-pc-windows-gnuاین روش توصیه می‌شود چرا که مدیریت وابستگی‌ها و ساخت پروژه را راحت‌تر می‌کند.۵. نکات و راهنمایی‌های تکمیلیرفع خطاهای لینک کردن:در صورتی که با خطاهایی مانندlink.exe not found مواجه شدید، به خاطر داشته باشید که این خطا مربوط به محیط MSVC است. با استفاده از toolchain GNU و نصب صحیح mingw-w64، این مشکل برطرف خواهد شد.بررسی نصب Rust:اجرای دستورات زیر می‌تواند از نصب صحیح Rust اطمینان حاصل کند:rustc --version cargo --versionخطای &quot;can&#x27;t find crate for std&quot;:اگر چنین خطایی دریافت کردید، مطمئن شوید که هدف GNU به درستی نصب شده و اضافه شده است:rustup target add x86_64-pc-windows-gnuسخن پایانیبا انجام مراحل فوق، محیط توسعه Rust شما به‌طور کامل برای استفاده از ABI GNU در ویندوز تنظیم می‌شود. این روش به ویژه برای توسعه‌دهندگانی که از ابزارهای GNU تخصیص داده شده (مانند mingw-w64) استفاده می‌کنند مناسب است و می‌تواند از برخی مشکلات مرتبط با MSVC جلوگیری کند. اکنون آماده‌اید تا برنامه‌های خود را کامپایل کنید و از امکانات پیشرفته Rust بهره ببرید.اگر این مطلب برای شما مفید بود، خوشحال می‌شوم من را در کافیته یا دارمت به یک قهوه مهمان کنید و به من برای تولید محتوای بهتر و قوی‌تر انگیزه دهید.</description>
                <category>Mohammad Shokoohi</category>
                <author>Mohammad Shokoohi</author>
                <pubDate>Mon, 14 Apr 2025 12:22:52 +0330</pubDate>
            </item>
                    <item>
                <title>رفع مشکل HomeBrew روی macOS اپل سیلیکن</title>
                <link>https://virgool.io/@m.shokoohirad/0071-nd2jbjzlmd0m</link>
                <description>برنامه‌ی مدیریت بسته‌ی HomeBrew یکی از مواردی است که برای توسعه‌دهندگانی که با سیستم‌عامل macOS کار می‌کنند می‌تواند بسیار مفید و کاربردی باشد. این مدیریت بسته روش نصبی بسیار آسان و سر راست دارد و عموماً بعد از نصب آن می‌توانید با دستور Brew به سادگی از آن استفاده کنید.ولی موارد معدودی پیش می‌آید که ممکن است که حین نصب این مدیریت بسته، اگر با استفاده از نصاب آفلاین آن اقدام به نصب و راه‌اندازی آن کرده باشید، با پیامی روبرو شوید که حاکی از آن است که دستور Brew شناسایی نشد!در چنین شرایطی جای نگرانی نیست و شما میتوانید با چند دستور ساده این مشکل را رفع کنید، پس در ادامه با من همراه شوید.بررسی و اطمینان از نصب کامل HomeBrewابتدا Terminal را باز کنید و این دستور را بنویسید:ls /opt/homebrewدرصورتی که تصویری مشابه با این دیدید، یعنی HomeBrew به خوبی نصب شده و فقط باید آن را به متغیر Path تعریف کنید.این تصویر مربوط به هکینتاش من است که مسیر HomeBrew در آن متفاوت است، ولی به صورت کلی باید بتوانید محتویات پوشه‌ی homeBrew را در مسیر /opt/homebrew/ ببینید. در غیر این صورت Brew به درستی نصب نشده است.تعریف مسیر HomeBrew به متغیر Path:قبل از اینکه این فرایند را شروع کنید، بهتر است که ابتدا مطمئن شوید که از چه Shellای برای ترمینال استفاده می‌کنید. این به خاطر تفاوت‌هایی است که Shellهای مختلف ممکن است با یکدیگر داشته باشند:echo $SHELLنسخه‌های macOS Catalina و جدیدتر از zsh به‌عنوان Shell استفاده می‌کنند و طبق چیزی که در تصویر مشاهده می‌کنید این موضوع به خوبی با این دستور مشخص می‌شود:حال کافیست که این دو دستور را وارد کنید:echo &#x27;eval &quot;$(/opt/homebrew/bin/brew shellenv)&quot;&#x27; &gt;&gt; ~/.zshrcsource ~/.zshrcاگر از Bash استفاده می‌کنید، دستورات به این شکل تغییر می‌کنند:echo &#x27;eval &quot;$(/opt/homebrew/bin/brew shellenv)&quot;&#x27; &gt;&gt; ~/.bash_profilesource ~/.bash_profileحال میتوانید با نوشتن دستور brew مطمئن شوید که همه‌چیز به درستی کار می‌کند.امیدوارم که این آموزش برای شما مفید بوده باشد.اگر این مطلب برای شما مفید بود، خوشحال می‌شوم من را در کافیته یا دارمت به یک قهوه مهمان کنید و به من برای تولید محتوای بهتر و قوی‌تر انگیزه دهید.</description>
                <category>Mohammad Shokoohi</category>
                <author>Mohammad Shokoohi</author>
                <pubDate>Wed, 09 Apr 2025 12:58:52 +0330</pubDate>
            </item>
                    <item>
                <title>فعال کردن USB Tethering موبایل‌های اندرویدی در Macهای M1/M2/M3</title>
                <link>https://virgool.io/@m.shokoohirad/0070-gmniwn4mxhr3</link>
                <description>یکی از قابلیت‌هایی که ممکن است گاهی برای کاربران Macهای اپل مورد نیاز باشد، قابلیت USB Tethering موبایل‌های اندرویدی است که به شکل پیشفرض در سیستم‌عامل macOS پشتیبانی نمی‌شود. نمی‌دانم کی و کجا!، اما گاهی ممکن است لازم باشد که به‌جای اتصال از طریق Wifi، از طریق کابل USB اقدام به اشتراک‌گذاری اینترنت کنید؛ پس با من در ادامه‌ی این آموزش همراه باشید.مرحله‌ی اول: غیر فعال کردن سیستم محافظت macOS یا همان SIPبرای این‌کار [غیرفعال کردن SIP] باید وارد محیط ریکاوری سیستم‌عامل شوید. به همین منظور ابتدا Mac را خاموش کرده و سپس کلید Power را فشار داده و نگه‌دارید تا منوی Boot-loader به شما نمایش داده شود.سپس از این صفحه از بین گزینه‌های موجود، گزینه‌ی Option را انتخاب کنید و صبر کنید تا وارد محیط ریکاوری شوید.بعد از وارد شدن به محیط ریکاوری، از منوی بالا به این مسیر Utilities &gt; Terminal بروید تا ترمینال برای شما اجرا شود.حال در ترمینال دستور زیر را وارد کنید تا SIP به شکلی تنظیم شود که بخش کرنل اکستنشن‌ها فقط قابل تغییر باشد و کماکان SIP بتواند از فایل‌های سیستمی در برابر بدافزارها و یا تغییرات ناخواسته محافظت کند:csrutil enable --without kextبعد از اجرای دستور بالا و در ادامه‌ی فرایند غیرفعال سازی، از شما سوالی جهت اطمینان از غیر فعال سازی پرسید می‌شود که با تایپ حرف y باید با آن موافقت کنید.در ادامه از شما رمز کاربری را می‌خواهد و شما باید همان رمزی را که حین ورود به Mac خود وارد می‌کنید، در این بخش وارد کند و سپس کلید Enter را بفشارید.توجه داشته باشید که در این بخش حین وارد کردن رمز، هیچ کاراکتری نمایش داده نمی‌شود.بعد از انجام مراحل گفته شده، از منوی بالا گزینه‌ی Terminal را بزنید و سپس با استفاده از گزینه‌ی Quit Terminal، از آن خارج شوید.حال از منوی Utilities گزینه‌ی Startup Security Utilities را انتخاب کنید.در این مرحله پنجره‌ای برای شما باز می‌شود که باید روی دکمه‌ی Security Policy کلیک کنید.در صفحه‌ای که برای شما باز می‌شود، باید گزینه‌ی Permissive Security فعال باشد و تیک دو گزینه‌ی زیر مجموعه‌ی آن نیز باید فعال باشد. مثل تصویر زیر: روی OK کلیک کنید و مجدداً از شما رمز عبور را می‌خواهد که باید رمز عبور حساب کاربری Mac خود را وارد کنید.صبر کنید تا تغییرات اعمال شود و سپس پنجره را ببنید. حال کار شما در این بخش تمام شده و باید Mac را ری‌استارت کنید و وارد محیط سیستم‌عامل شوید.بعد از ورود به محیط سیستم‌عامل شما باید نسخه‌ی Release اکستنشن HoRNDIS را از آدرس زیر دانلود و از حالت Zip خارج کنید.https://github.com/TomHeaven/HoRNDIS/releasesدر نهایت شما فایلی با نام HoRNDIS.kext خواهید داشت و آن را روی Desktop کپی کنید:سپس Terminal را اجرا و در ابتدای خط فرمان دستور زیر را تایپ کنید:sudo cp -R حال یک‌بار کلید Space را بفشارید تا یک فاصله ایجاد شود و فایل HoRNDIS.kext را به محیط ترمینال بکشید تا مسیر آن در ادامه‌ی دستور sudo cp -R قرار بگیرد.سپس باید مجددا با فشردن کلید Space یک فاصله‌ی دیگر ایجاد کنید و این مسیر را در ادامه‌ی دستور وارد کنید:/Library/Extensionsدرنهایت دستور شما باید چنین شکلی داشته باشد:sudo cp -R /Users/USER-NAME/Desktop/HoRNDIS.kext /Library/Extensionsبه‌جای USER-NAME باید نام کاربری شما با رعایت بزرگی و کوچکی حروف نوشته شود، مانند تصویر زیر:حال کلید Enter را بفشارید و رمز عبور خود را وارد کنید.در صورتی که حین تایپ دستورات با خطایی روبرو شدید، بررسی کنید و ببینید در کدام بخش غلط املایی دارید یا فواصل را رعایت نکرده‌اید و به بزرگی و کوچکی حروف دقت نکرده‌اید.اگر همه چیز درست باشد، اکستنشن مربوطه به درستی در مسیر مورد نظر کپی شده است.حال باید وارد System Settings شوید و از منوی سمت چپ، بخش Privacy &amp; Security را انتخاب کنید و صفحه را به پایین اسکرول کنید تا به پیام مشخص شده در تصویر برسید و روی دکمه‌ی Allow کلیک کنید تا اکستنشن HoRNDIS بتواند فعالیت خود را آغاز کند:بعد از فشردن کلید Allow ممکن است سیستم‌عامل چندبار از شما بخواهد که رمز عبور خود را وارد کنید. در انتها پیامی مبنی بر Restart کردن Mac به شما نمایش داده خواهد شد که باید برای فعال سازی نهایی و اجرای صحیح اکستنشن نصب شده، آن را Restart کنید.بعد از روشن شدن Mac شما میتوانید به سادگی و با اتصال تلفن اندرویدی خود از طریق USB به Mac و فعال سازی گزینه‌ی USB Tethering در تلفن خود، اینترنت تلفن اندرویدی خود را با Mac خود به اشتراک بگذارید.امیدوارم که این آموزش برای شما مفید بوده باشد.اگر این مطلب برای شما مفید بود، خوشحال می‌شوم من را در کافیته یا دارمت به یک قهوه مهمان کنید و به من برای تولید محتوای بهتر و قوی‌تر انگیزه دهید.</description>
                <category>Mohammad Shokoohi</category>
                <author>Mohammad Shokoohi</author>
                <pubDate>Tue, 30 Apr 2024 18:31:18 +0330</pubDate>
            </item>
                    <item>
                <title>نصب جدیدترین نسخه‌ی کامپایلر GCC به همراه Clang و LLVM در ویندوز</title>
                <link>https://virgool.io/codenevis/0069-ogytzuwfvirn</link>
                <description>یکی از مشکلاتی که تازه‌کاران و افرادی که به تازگی یادگیری زبان C یا CPP را آغاز کرده‌اند، پیدا کردن جدیدترین نسخه‌ی کامپایلر GCC برای ویندوز است.عموماً اگر از IDEهایی مثل Visual Studio یا QT و... استفاده نکنید، احتمالاً برای پیدا کردن جدیدترین نسخه‌ی کامپایلر GCC به در بسته خورده‌اید یا برای نصب آن با مشکلات زیادی دست و پنجه نرم کرده‌اید.برخلاف ویندوز، در لینوکس و macOS و حتی FreeBSD، شما به راحتی به جدیدترین کامپایلر GCC و Clang دسترسی خواهید داشت و با تایپ یک دستور ساده، سیستم‌عامل به شکل خودکار این ابزارها را برای شما نصب خواهد کرد. اما در ویندوز اوضاع کمی متفاوت است و برای این‌کار نیاز دارید که خودتان دست‌به‌کار شده و کامپایلر GCC را نصب کنید.خبر خوب اینکه من در این مطلب نحوه‌ی دانلود و نصب به‌روز‌ترین نسخه‌ی کامپایلر GCC را آموزش خواهم داد، پس در ادامه با من همراه باشید.پیدا کردن آخرین نسخه و دانلود بسته‌ی فشرده‌ی کامپایلر GCCابتدا به وبسایت WinLibs مراجعه کنید:https://winlibs.com/حال از بخش بالای سایت یعنی Jump to، گزینه‌ی Download را انتخاب کنید:حال باید از بخش Release versions باتوجه به نسخه‌ی ویندوزی که دارید (32 یا 64 بیت) و همچنین یکی از گزینه‌های UCRT Runtime و MSVCRT Runtime بسته‌ی مناسب را انتخاب کنید.دقت کنید که بسته‌هایی را که POSIX هستند دانلود کنید.توجه: * کامپایلرهای UCRT یا همان Universal C Runtime برای ویندوز 10 و 11 و بالاتر مناسب هستند.** کامپایلرهای MSVCRT برای ویندوزهای 7 و 8/8.1 مناسب هستند.حال که نسخه‌ی کامپایلر و نوع آن را بسته به شرایط کامپیوترتان پیدا کردید، بسته به انتخاب می‌توانید یکی از دوفایل با فرمت 7Zip یا Zip را دانلود کنید.هیچ تفاوتی در محتویات این دو فرمت نیست و فقط در حجم نهایی فشرده‌سازی باهم تفاوت دارند.پس از دانلود کامپایلر، باید فایلی با چنین نامی داشته باشید:winlibs-x86_64-posix-seh-gcc-13.2.0-llvm-17.0.5-mingw-w64ucrt-11.0.1-r3.zipیاwinlibs-x86_64-posix-seh-gcc-13.2.0-llvm-17.0.5-mingw-w64ucrt-11.0.1-r3.7zحال آن‌را از حالت فشرده خارج کنید و سپس پوشه‌ی mingw64 یا mingw32 را به پوشه‌ی Program Files موجود در درایوی که ویندوز شما نصب است منتقل کنید.احتمالاً حین کپی، ویندوز از شما تاییده‌ی کپی این پوشه در یک مسیر سیستمی را می‌خواهد که باید آن را تایید کنید.تا اینجا، اصلی‌ترین کار که دانلود و نصب کامپایلر است را انجام دادیم. حال باید مسیر کامپایلر را در Path سیستم‌عامل ویندوز تعریف کنیم تا توسط ترمینال یا پاورشل و یا برنامه‌های دیگر شناسایی شود.تعریف کامپایلر در Path سیستم‌عامل ویندوزویندوز 7 و 8 و 8.1:ابتدا روی My Computer یا This PC راست کلیک کنید و سپس گزینه‌ی Properties را انتخاب نمایید.در ادامه از منوی بالا و سمت چپ، روی گزینه‌ی Advanced system settings کلیک کنید.ویندوز 10 و 11:وارد Settings شوید و در کادر جستجو گزینه‌ی Environment variable را جستجو کنید.از بین گزینه‌های موجود گزینه‌ی Edit the system Environment variable را انتخاب کنید:سپس پنجره‌ای برای شما باز می‌شود که باید گزینه‌ی Environment variable را در آن انتخاب کنید:حال از پنجره‌ی باز شده گزینه‌ی Path را انتخاب و روی دکمه‌ی Edit کلیک کنید:حال در پنجره‌ی Path روی دکمه‌ی New کلیک کنید تا یک ورودی جدید ایجاد شود و باید مسیر پوشه‌ی bin موجود در پوشه‌ی mingw64 یا mingw32 را در این بخش قرار دهید. برای این کار کافیست که به شکل دستی مسیر را بنویسید، اگر برای نوشتن مسیر تسلط کافی را ندارید، ابتدا وارد پوشه‌ی mingw64 یا mingw32 و سپس پوشه‌ی bin شوید. حال کافیست که در قسمت بالای پنجره‌ی Explorer در بخش نوار آدرس کلیک کنید تا مسیر پوشه‌ی bin برای شما نمایش داده شود و آن را انتخاب و سپس کپی کنید و در بخش مربوطه در پنجره‌ی Path قرار دهید:حال روی دکمه‌ی OK در تمامی پنجره‌های باز شده کلیک کنید و باقی پنجره‌ها را ببندید.از منوی استارت یکی از برنامه‌های PowerShell یا Terminal و یا CMD را جستجو کرده و اجرا کنید.کافیست که دستورات زیر را خط به خط نوشته و Enter کنید تا از صحت شناسایی کامپایلر در سیستم‌عامل مطمئن شوید:gcc --versiong++ --versiongdb --versionclang --versionتبریک!شما موفق شدید که جدیدترین نسخه‌ی کامپایلر GCC را روی ویندوز نصب کنید.توجه: این آموزش مربوط به افراد تازه‌کار و کسانی است که به تازگی اقدام به یادگیری برنامه‌نویسی به زبان C یا CPP کرده‌اند. اگر به هر دلیلی احساس می‌کنید که نمی‌توانید مراحل این آموزش را انجام دهید، اکیداً پیشنهاد می‌کنم که از افراد متخصص کمک بخواهید. همچنین کلیه‌ی عواقب ناشی از انجام اشتباه مراحل به عهده‌ی شما می‌باشد.امیدوارم که این آموزش برای شما مفید بوده باشد.اگر این مطلب برای شما مفید بود، خوشحال می‌شوم من را در کافیته یا دارمت به یک قهوه مهمان کنید و به من برای تولید محتوای بهتر و قوی‌تر انگیزه دهید.</description>
                <category>Mohammad Shokoohi</category>
                <author>Mohammad Shokoohi</author>
                <pubDate>Fri, 05 Jan 2024 21:48:51 +0330</pubDate>
            </item>
                    <item>
                <title>رفع مشکل سفید شدن نشانگر انتخاب متن در ویندوز 10 و 11</title>
                <link>https://virgool.io/@m.shokoohirad/0068-dqzajaxgyn3k</link>
                <description>گاهی ممکن است به دلایل مختلف مانند عدم سازگاری یا یک باگ در درایور پردازنده‌ی گرافیکی و یا موارد دیگر، شما هم با مشکل سفید شدن Text Cursor Indicator یا همان نشانگر انتخاب متن در ویندوز 10 و 11 برخورد کرده باشید.این مشکل باعث می‌شود که حین استفاده از برنامه‌های ویرایش متن یا مرورگر‌های اینترنتی و همچنین مواقعی که نیاز دارید متنی را وارد و یا انتخاب کنید، نتوانید نشانگر انتخاب متن را ببینید و همین باعث می‌شود که برای لحظاتی کار شما مختل شود.عده‌ای معتقد هستند که این باگ مربوط به Google Chrome است و در انجمن‌های مختلف کاربران را به سایت گوگل و پشتیبانی گوگل کروم هدایت می‌کنند. اما دامنه‌ی بروز این مشکل بسیار گسترده‌تر است و ممکن است حین استفاده از برنامه‌های ویندوز هم برای شما این مشکل اتفاق بیافتد.در این آموزش قصد دارم که به شما آموزش دهم که به سادگی این مشکل را رفع کنید و یک‌بار برای همیشه خود را از شر گم شدن نشانگر انتخاب متن خلاص کنید.قبل از آموزش رفع مشکل باید بدانید که برای انجام این ترفند باید از طریق رجیستری ویندوز اقدام به اصلاح و رفع این مشکل کنید و اکیداً توصیه می‌کنم که اگر با نحوه‌ی اصلاح و ایجاد کلید در رجیستری ویندوز آشنا نیستید خودتان اقدام به انجام این‌کار نکنید. و در صورت انجام این آموزش به شکل نا‌درست، کلیه‌ی مسئولیت عواقب ناشی از خراب شدن یا آسیب دیدن رجیستری ویندوز به عهده‌ی شما خواهد بود.برای اینکه بتوانید این مشکل را حل کنید، ابتدا وارد رجیستری ویندوز شوید.ابتدا منوی استارت را باز کنید و سپس تایپ کنید regedit تا برنامه‌ی Registry Editor نمایش داده شود و سپس آن را اجرا کنید.در ادامه به این مسیر بروید:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Dwmحال در مسیر مشخص شده روی فضای خالی پنجره‌ی برنامه راست کلیک کنید و از زیر مجموعه‌ی گزینه‌ی New گزینه‌ی DWORD (32bit) Value را انتخاب کنید.سپس نام آن را به OverlayTestMode تغییر دهید و مقدار آن را برابر با 00000005 بگذارید.در صورتی که می‌خواهید به صورت خودکار این تغییر اعمال شود، فایل زیر را دانلود و با دابل کلیک روی آن، آن را اجرا کنید و تمامی تاییده‌های ویندوز را انجام دهید تا کلید مدنظر در رجیستری ایجاد شود.دانلود فایلپس از انجام موارد گفته شده، کلیه‌ی پنجره‌ها و برنامه‌ها را ببندید و کامپیوتر را برای اعمال تغییرات یک‌بار Restart کنید.تبریک!حال با بررسی مجدد نشانگر انتخاب متن، خواهید دید که مشکل به خوبی رفع شده است.امیدوارم که این آموزش برای شما مفید بوده باشد.اگر این مطلب برای شما مفید بود، خوشحال می‌شوم من را در کافیته یا دارمت به یک قهوه مهمان کنید و به من برای تولید محتوای بهتر و قوی‌تر انگیزه دهید.</description>
                <category>Mohammad Shokoohi</category>
                <author>Mohammad Shokoohi</author>
                <pubDate>Thu, 04 Jan 2024 11:04:06 +0330</pubDate>
            </item>
                    <item>
                <title>نکاتی از macOS که ممکن است ندانید!</title>
                <link>https://virgool.io/@m.shokoohirad/0067-ggzbxrqed1b8</link>
                <description>برخلاف ویندوز و گنو/لینوکس که از طریق انواع و اقسام منوها و Popupها، نکات کلیدی و کاربری را نمایش می‌دهند، در سیستم‌عامل macOS ما چنین مواردی را نمی‌بینم، حتی با اتصال یک Mouse یا Keyboard و حتی USB Flash، باز هم هیچ اعلان یا صدایی مبنی بر اتصال این دیوایس‌ها نمی‌بینیم. چنین چیزی شاید یک عیب محسوب شود، اما در DNA این سیستم‌عامل قرار گرفته است.عمده مشکلاتی که کاربران تازه‌وارد به دنیای اپل در سیستم‌عامل macOS دارند، عملکردهای بدیهی است که تا پیش از این در ویندوز یا گنو/لینوکس به سادگی قابل انجام بودند. در این آموزش قصد دارم چند مورد مهم و کلیدی را به شما آموزش دهم تا بتوانید به سادگی از سیستم‌عامل macOS استفاده کنید.روش Cut کردن و جابه‌جایی یک فایل یا پوشهبرای Cut کردن یک فایل یا پوشه در macOS شما هیچ گزینه‌ای را برای انجام این‌کار نمی‌بینید!، اما کافیست که فایل یا پوشه‌ی مدنظر خودرا Copy کنید و سپس در مقصد قبل از راست کلیک کلید Option یا همان Alt را بفشارید و همزمان با آن راست کلیک کنید، خواهید دید که به جای گزینه‌ی Paste Item، گزینه‌ی دیگری با عنوان Move Item Here نمایش داده خواهد شد.حذف مستقیم فایل‌هااگر کاربر ویندوز باشید میدانید که با فشردن کلید Shift+Delete می‌توانید فایل‌های خود را مستقیماً و برای همیشه حذف کنید. برای انجام این کار در macOS کافیست که فایل(ها) یا پوشه(ها)‌ی مدنظر خود را انتخاب کنید و سپس کلیدهای Option+Command+Delete را بفشارید و در انتها پیامی مبنی بر حذف موارد مدنظر شما نمایش داده خواهد شد که با انتخاب دکمه‌ی قرمز رنگ Delete حذف خواهند شد.مخفی کردن فایل یا پوشهمخفی کردن فایل یا پوشه در سیستم‌عامل‌هایی که بر پایه‌ی یونیکس هستند با ویندوز تفاوت چشمگیری دارد. در سیستم‌عامل macOS و حتی Linux شما نمی‌توانید مانند ویندوز گزینه‌ای را برای این کار پیدا کنید. برای مخفی کردن فایل‌ها یا پوشه‌ها در macOS کافیست که در ابتدای نام آن یک نقطه ( . )  بگذارید. پس از تایید خواهید دید که فایل مخفی خواهد شد. البته یک مشکل خیلی بزرگ حین انجام این‌کار در macOS وجود دارد. شما پس از انجام این‌کار با یک پیغام خطا مشابه تصویر زیر مواجه خواهید شد!برای اینکه بتوانید فایلی را در macOS مخفی کنید دو راه دارید، یا از برنامه‌های ثالث استفاده کنید و یا با استفاده از Terminal به سادگی فایل‌ها و پوشه‌های خود را مخفی کنید. من در این آموزش فقط روش مخفی کردن از طریق Terminal را به شما آموزش می‌دهم و اگر با استفاده کردن از Terminal راحت نیستید پیشنهاد می‌کنم که به دنبال برنامه‌ای برای این‌کار بگردید.ابتدا از طریق Launcher یا Spotlight اقدام به باز کردن Terminal کنید، سپس با استفاده از دستور cd به مسیر مورد نظر خود بروید.اگر نمی‌توانید به خوبی مسیر مدنظرتان را تایپ کنید، بهتر است دستور cd را بنویسید و با کلید Space یک فاصله قرار دهید و سپس پوشه‌ای را که فایل‌ها یا پوشه‌های مدنظرتان برای مخفی شدن در آن هستند را به درون پنجره‌ی Terminal بکشید و رها کنید.پس از فشردن کلید Enter خواهید دید که وارد پوشه‌ی مد نظر شده‌اید. حال کافیست که با دستور زیر فایل‌ها یا پوشه‌هایی را که قصد مخفی کردن دارید را با دستور زیر مخفی کنید:mv file_name .file_nameتوضیح دستور بالا: در دستوری که می‌بینید بخش اول (mv) دستور Move در خط فرمان است، در ادامه با کلید Space یک فاصله ایجاد می‌کنیم و نام فایل یا پوشه‌ی مدنظر را می‌نویسیم و سپس با ایجاد یک فاصله‌ی دیگر مجدد نام همان فایل یا پوشه را می‌نویسیم اما این‌بار یک نقطه ( . ) در ابتدای آن قرار می‌دهیم و سپس کلید Enter را می‌فشاریم.با این ترفند به سادگی می‌توانید محدودیت macOS را دور بزنید و فایل‌ها و پوشه‌ها را مخفی کنید.نکته: فایل‌ها و پوشه‌هایی که نامشان از چند کلمه تشکیل شده را باید در بین علامت &quot; &quot; بگذارید تا بدون خطا بتوانید فرایند مخفی کردن را انجام بدهید، مانند مثال زیر:mv &quot;file name&quot; &quot;.file name&quot;نمایش فایل‌ها و پوشه‌های مخفیبرای دیدن فایل‌ها و پوشه‌های مخفی کار ساده‌ای در پیش دارید، کافیست که کلید‌های ترکیبی زیر را بفشارید تا به صورت خودکار تمامی فایل‌ها و پوشه‌های مخفی نمایش داده شوند:Shift + Command + .اگر مجدد این سه کلید را بفشارید، خواهید دید که فایل‌ها مخفی خواهند شد.تنظیم Minimize شدن برنامه‌ها در آیکون خودشان بر روی Dockاگر بخواهید که با Minimize شدن پنچره‌ها، به سمت آیکون خودشان در Dock بروند و فضای Dock را شلوغ نکنند، باید به مسیر زیر بروید و سپس گزینه‌ی Minimize windows into application icon را فعال کنید.System Settings &gt;&gt; Desktop &amp; Dockجستجو در محتوای پوشه‌ی جاری در Finderبرخلاف ویندوز، با جستجو در نوار جستجوی Finder، لیستی از تمامی فایل‌ها در بخش‌های مختلف حافظه برای شما لیست خواهد شد.در صورتی که بخواهید مانند ویندوز با جستجو در این باکس به سرعت فایل یا پوشه‌ی مدنظر در مسیر جاری فقط پیدا شود، ابتدا روی Desktop کلیک کنید و سپس از منوی بالا روی Finder کلیک کنید و وارد Settings شوید.در پنجره‌ی  شده به سربرگ Advanced بروید.حال گزینه‌ی When performing a search را روی حالت Search the Current Folder قرار دهید.حال با جستجوی فایل یا پوشه‌ها در Finder خواهید دید که مانند ویندوز جستجو فقط در مسیر جاری انجام خواهد شد.امیدوارم که این نکات برای شما مفید باشند. در آینده و در مقالاتی دیگر ترفند‌های بیشتری را آموزش خواهم داد.اگر این مطلب برای شما مفید بود، خوشحال می‌شوم من را در کافیته یا دارمت به یک قهوه مهمان کنید و به من برای تولید محتوای بهتر و قوی‌تر انگیزه دهید.</description>
                <category>Mohammad Shokoohi</category>
                <author>Mohammad Shokoohi</author>
                <pubDate>Sat, 04 Nov 2023 19:57:12 +0330</pubDate>
            </item>
                    <item>
                <title>بازگشت به گذشته با GNUstep</title>
                <link>https://virgool.io/@m.shokoohirad/0066-o87vjjxute4u</link>
                <description>چند روز پیش در حالی که به گذشته و دنیای کامپیوتر در دهه‌ی ۱۹۹۰ و ۲۰۰۰ میلادی فکر می‌کردم، دلم به طرز عجیبی برای تجربه‌ی محیط قدیمی سیستم‌عامل‌های دهه‌ی ۹۰ میلادی تنگ شد. با اینکه سیستم‌عامل‌ها و کامپیوترهای امروزی به شکلی دیوانه‌وار قدرتمندتر و زیباتر شده‌اند، اما گاهی دلم همان سیستم‌عامل‌های قدیمی را می‌خواهد. هرچه نباشد آن سیستم‌عامل‌ها و کامپیوترها بچگی و نوجوانی مارا ساخته‌اند.بعد از این سکانس دراماتیک، تصمیم گرفتم که برای زنده کردن آن حس‌های نوستالژیک دست به‌کار شوم و کمی از وقتم را در محیط سیستم‌عامل NeXTSTEP بگذرانم. برای این‌کار دو راه جلوی روی من بود.با استفاده از یک ماشین مجازی نسخه‌ای از NeXTSTEP را اجرا کنم.از مدیریت پنجره‌ای مشابه، با نام GNUstep برای این منظور استفاده کنم.باتوجه به اینکه من در کنار تجربه‌ی محیط NeXTSTEP، به دنبال ایجاد سیستم‌عاملی کاربردی و قابل استفاده در سال ۲۰۲۳ بودم، تصمیم گرفتم که مسیر دوم را پیش بگیرم.حال بیایید بررسی کنیم که GNUstep دقیقاً چیست؟!گنو استپ درواقع یک کپی و یک پیاده سازی رایگان از محیط سیستم‌عامل NeXTSTEP است که برای استفاده در سیستم‌عامل‌هایی مثل Linux و BSDها ساخته شده است. این ابزار درواقع یک Window Manager یا Window Maker است که می‌توان از آن به عنوان محیط کاری گرافیکی استفاده کرد.گنو استپ شامل ابزارها و قابلیت‌های اولیه برای مدیریت گرافیکی پنجره‌های برنامه‌های درحال اجرا و فایل‌ها است و برخلاف دسکتاپ‌هایی مانند Gnome و KDE بسیار کم‌حجم و سبک می‌باشد.برای تجربه‌ی این محیط به چه چیزهایی نیاز داریم؟من برای اینکه بتوانم این محیط را به شکل خاصل تجربه کنم به سیستم‌عامل لینوکسی یا یونیکسی نیاز داشتم که به صورت پیشفرض هیچ محیط گرافیکی روی آن نصب نشده باشد. هرچند که شما اگر از یک سیستم‌عامل لینوکسی استفاده می‌کنید همین حالا هم می‌توانید آن‌را نصب کنید.برای انجام این‌کار چندین انتخاب وجود دارد، مثل Arch Linux، Debian Net Install یا Ubuntu Server و ...، من برای این‌کار Ubuntu Server را انتخاب کردم چرا که با توزیع‌های دبیان بیس راحت‌تر هستم و از طرفی Ubuntu به دلیل داشتن جامعه‌ی کاربری گسترده، مستندات و راهنما‌های بیشتری در سطح اینترنت دارد.البته شما می‌توانید روی یک توزیع دلخواه و یا حتی BSDها آن را نصب کنید.مراحل نصب GNUstepدر گام نخست باید Ubuntu Server را نصب می‌کردم.من در هکینتاشم با استفاده از برنامه‌ی Parallels یک ماشین مجازی بر اساس نیازمندی‌های Ubuntu Server ساختم و سپس آن را نصب کردم.سپس وارد محیط خط فرمان Ubuntu Server شدم و این دستورات را برای به روز رسانی سیستم‌عامل وارد کردم:sudo apt updatesudo apt upgradeپس از دانلود و نصب به روز رسانی‌ها، در ابتدا باید محیط x11 را نصب می‌کردم. برای این کار از دستور زیر استفاده کردم:sudo apt install xrogبعد از دانلود و نصب شدن xorg و x11 باید به سراغ نصب محیط GNUstep برویم، با نوشتن این دستور می‌توانید این محیط را نصب کنید:sudo apt install gnustepبعد از دانلود بسته‌ها و انجام فرایند نصب، کافیست که یک‌بار سیستم‌عامل را با دستور reboot مجدداً راه‌اندازی کنید تا تغییرات اعمال شوند.بعد کافیست که با دستور startx محیط گرافیکی را اجرا و وارد GUNstep شوید.نصب و استفاده از این محیط برای من بسیار لذت‌بخش بود و امیدوارم اگر شما هم مایل به تجربه‌ی این محیط برای زنده کردن فضای و حس نوستالژیک دوران گذشته هستید، از آن لذت ببرید.اگر این مطلب برای شما مفید بود، خوشحال می‌شوم من را در کافیته یا دارمت به یک قهوه مهمان کنید و به من برای تولید محتوای بهتر و قوی‌تر انگیزه دهید.</description>
                <category>Mohammad Shokoohi</category>
                <author>Mohammad Shokoohi</author>
                <pubDate>Mon, 23 Oct 2023 16:26:19 +0330</pubDate>
            </item>
                    <item>
                <title>جادوی خط‌فرمان و ImageMagick در دنیای تصاویر</title>
                <link>https://virgool.io/@m.shokoohirad/0065-zd52d4dsmqin</link>
                <description>در دنیای امروز نرم‌افزارهای زیادی برای کار با تصاویر مثل ویرایش، تبدیل فرمت‌ها و... وجود دارند که با کیفیت و سرعت خوبی می‌توانند تمامی نیاز‌های ما را پوشش دهند. ولی گاهی شرایطی پیش می‌آید که نیاز داریم کاری با بیشترین سرعت و کمترین زحمت برای ما انجام شود، خواه یک توسعه‌دهنده‌ی نرم‌افزار باشیم، خواه یک کاربر عادی و یا هر دسته‌بندی دیگری از کاربران، رخ‌داد چنین اتفاقی اجتناب نا‌پذیر است. عموماً در چنین شرایطی به دنبال نرم‌افزاری می‌گردیم که بتواند به سادگی و سرعت بالایی نیاز ما را برآورده کند.فرض کنید در سیستم‌عامل لینوکس، ویندوز یا macOS قصد دارید که مجموعه‌ای از عکس‌ها و یا حتی یک عکس را از حالت رنگی به سیاه و سفید تبدیل کنید. در این حالت همان‌گونه که در ابتدا گفته شد انتخاب‌های زیادی وجود دارند که برای رسیدن به هدفتان می‌توانید برگزینید؛ و جالب این‌جاست که ابزارهای تحت خط‌فرمان در میان این انتخاب‌ها جایی ندارند و یا حداقل در بین اکثر قریب به اتفاق کاربران جایی نخواهند داشت.در پلت‌فرم X یا همان توییتر سابق، دوستی که کاربر لینوکس بود درخواست راهنمایی داشت که بهترین و سریع‌ترین راه برای اینکه بتوان مجموعه‌ای از عکس‌ها را سیاه و سفید کرد، پیشنهاد دهیم. با دیدن پُست این دوست، به سرعت به‌یاد ابزار Image Magick افتادم که به شکل بالقوه‌ای توانایی انجام چنین کاری را در مقیاس‌های مختلف دارا است؛ و این بهانه‌ای شد تا مقاله‌ای را در مورد این ابزار بنویسم.ابزار ImageMagick چیست؟ایمیج‌مجیک یک مجموعه‌ی نرم‌افزاری رایگان و منبع‌باز است که برای ویرایش و دست‌کاری تصاویر دیجیتال استفاده می‌شود. از این ابزار می‌توان برای ایجاد، ویرایش، نوشتن یا تبدیل تصاویر Bitmap یا همان Raster استفاده کرد؛ این نرم‌افزار از طیف گسترده‌ای از فرمت‌های تصویری مانند Jpeg - PNG - GIF - TIFF - PDF و... پشتیبانی می‌کند.همچنین این ابزار به شکل گسترده در توسعه‌ی وب و نرم‌افزار، طراحی گرافیک و ویرایش ویدیو، تحقیقات علمی، تصویربرداری پزشکی، نجوم و بسیاری از شاخه‌های مرتبط دیگر استفاده می‌شود.ماهیت همه‌کاره و قابل تنظیم ‌آن، همراه با قابلیت‌های پردازش تصویر قدرتمند، آن‌را به گزینه‌ای محبوب برای طیف وسیعی از وظایف مرتبط با تصاویر دیجیتال تبدیل کرده است.ایمیج مجیک شامل یه رابط خط‌فرمان برای اجرای وظایف پیچیده‌ی پردازش تصویر و همچنین مجمو‌عه‌ای از APIها برای ادغام ویژگی‌های ‌آن در نرم‌افزارهای دیگر است.این برنامه با زبان C نوشته شده و با سیستم‌عامل‌های مختلفی از جمله ویندوز، لینوکس‌ و macOS سازگار است.نحوه‌ی نصب این ابزار در کامپیوتربرای این‌کار کافی است که به وب‌سایت این نرم‌افزار [https://imagemagick.org] مراجعه کنید و در بخش Download می‌توانید نسخه‌ی مد‌نظر خود را برای سیستم‌عاملی که استفاده می‌کنید دانلود و نصب نمایید.نحوه‌ی استفاده از این ابزاربا توجه به اینکه این ابزار یک ابزار تحت خط‌فرمان است، پس قبل از هرچیزی لازم است که حداقل‌های استفاده از خط‌فرمان را بدانید و یا بیاموزید.بعد از نصب این ابزار، با نوشتن دستور زیر می‌توانید ببینید که نسخه‌ی مورد استفاده‌ی شما چند است و یا از نصب شدن آن مطمئن شوید:magick -versionبرای آگاهی از قابلیت‌ها و راهنمای دستورات این ابزار می‌توانید از مستندات نوشته شده در وب‌سایت ImageMagick [این لینک] استفاده کنید.برای مثال اگر بخواهیم عکس یا عکس‌هایی را از حالت رنگی به سیاه و سفید تبدیل کنیم، کافی است که دستور زیر را در ترمینال یا محیط خط‌فرمان وارد کنیم:convert &lt;input_image&gt; -type grayscale &lt;output_image&gt;به هرحال استفاده از ابزارهای خط‌فرمان می‌تواند به یکی از انتخاب‌های پیش‌روی شما تبدیل شود تا در مواقع لزوم بتوانید بهترین تصمیم را در مورد استفاده از ابزارهای موردنیازتان داشته باشید.اگر این مطلب برای شما مفید بود، خوشحال می‌شوم من را در کافیته به یک قهوه مهمان کنید و به من برای تولید محتوای بهتر و قوی‌تر انگیزه دهید.</description>
                <category>Mohammad Shokoohi</category>
                <author>Mohammad Shokoohi</author>
                <pubDate>Mon, 16 Oct 2023 09:31:10 +0330</pubDate>
            </item>
            </channel>
</rss>