<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های Amber Eye</title>
        <link>https://virgool.io/feed/@farx</link>
        <description>انسان یک گونه نقاد ، هنرمند و هوشمند است ! به همین خاطر است که پرسشگری میکند!</description>
        <language>fa</language>
        <pubDate>2026-04-14 22:17:33</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/1260045/avatar/JscqhA.jpeg?height=120&amp;width=120</url>
            <title>Amber Eye</title>
            <link>https://virgool.io/@farx</link>
        </image>

                    <item>
                <title>وسط گلوله و آتش</title>
                <link>https://virgool.io/Mlpjvbj/%D9%88%D8%B3%D8%B7-%DA%AF%D9%84%D9%88%D9%84%D9%87-%D9%88-%D8%A2%D8%AA%D8%B4-eabsl201bxfh</link>
                <description>خواننده عزیز این متن صرفا یک تصویر از میدان جنگ در من ناخودآگاهم هست.دورم...سلامنمی‌دونم نامه رو با اسم تو شروع کنـمیا با صدای انفجاری که هنوز توی گوشمه…نمی‌دونم الان که اینو می‌نویسم شب شدهیا فقط دود، آسمون رو خاموش کرده.راستش من هیچ‌وقت بلد نبودم چیزای مهم رو درست بگم…همیشه گذاشتم برای بعد از این بعد از اون بعدامثلبعد از این نگهبانیبعد از این مأموریتبعد از این جنگ با خودم…یادته؟اون کیوسک تلفن قرمز…هفده سالت بود و لبخندت انگار اشتباهی وسط شلوغی هر شهر جا مونده بود.من فقط رد می‌شدم…ولی همون یه لحظه یه جوری نگاهم رو برداشتیکه دیگه هیچ‌وقت نتونستم برش دارم.از همون روزهر بار خواستم حرف بزنم صدام جلو گلوم ایستادمثل سربازی که فرمان شلیک رو بلدهاما جرأت کشیدن ماشه رو نداره…قبل از اومدن به جنگ با خودم قرار گذاشتمگفتم: برمی‌گردم… این بار می‌گم حتی اگه صدام بلرزه. حتی اگر دستام بلرزهاما الان…جناحمون شکست خوردهدوستام یکی‌یکی اسماشون تبدیل به خاطره می‌شهو من نمی‌دونم که برگشتن هنوز توی آینده‌م هست یا نه.اگه این نامه به دستت رسیدو من نبودمبدون یکی اینجا وسط گلوله و آتشتمام شجاعت زندگیش رو نه برای جنگبلکه برای دوست داشتنت جا گذاشت.من هیچ‌وقت نگفتم...ببخشید که سریع اینا رو میگمآخه میدونی وقت ندارم ...در نهایت از روز 7 بهمن متنفرم روزی که بدنیا اومدم و بدبختی ها شروع شد.</description>
                <category>Amber Eye</category>
                <author>Amber Eye</author>
                <pubDate>Tue, 27 Jan 2026 00:08:17 +0330</pubDate>
            </item>
                    <item>
                <title>سمفونی</title>
                <link>https://virgool.io/@farx/%D8%B3%D9%85%D9%81%D9%88%D9%86%DB%8C-tobjczfjq8zj</link>
                <description>سمفونیخوانندهٔ عزیز،این واژه‌ها هیچ خویشاوندی با هم ندارند،اما همین بی‌ربطیموسیقی من است.فقط احساسات خودم... توی ویس هست!اینجاست که باید یک سمفونی بزنیم؛سمفونیِ حرامزادگانبرای توبرای منبرای مابرای داستان غم‌انگیزِ سگو گورکنی که بی‌وقفهحرف می‌زند.برای خونِ چکیدهاز جسدِ کلاغیبر شاخهٔ درختیکه ابرِ مادرو دریاهر دوبر آن گریسته‌اند.برای رنگ چوبیِ تابوتِ مردِ ساکتدر جهانی لبریز از تحقیر،و برای چای آرام‌بخش،و گیتاری که سیم‌هایشاز خونِ لب‌هایمدر لحظهٔ تسلیم به سکوترنگین‌اند.پس برویدگم شوید از حضورمبگذارید بخوانماز حرامزادگان؛برای توبرای من.وقتی می‌گویمبودنت شادی‌ست،یعنی همین.این‌ها فقط مشتی کثافت‌انداز ذهن خیال‌پردازم.و من،میان خشونت شعر،گاهی فقطسپاس می‌گویمکه مرا عاشق کرده‌ای.نهچیز مهمی نیست.سنگینم؟نه، سبک شده‌ام…کنترلاز دستم رفته.هان؟ آری،من همان فرِ هان‌ ام.آگاهی شکوهی ندارد کهنه نه…فرار شایدنمی‌دانم.به هر حال،من نیزحرامزاده امحرامزاده‌ام.</description>
                <category>Amber Eye</category>
                <author>Amber Eye</author>
                <pubDate>Mon, 26 Jan 2026 13:55:54 +0330</pubDate>
            </item>
                    <item>
                <title>آشنایی با navigation در فایل سیستم | کتاب bash2003 بخش 1-5</title>
                <link>https://virgool.io/@farx/%D8%A2%D8%B4%D9%86%D8%A7%DB%8C%DB%8C-%D8%A8%D8%A7-navigation-%D8%AF%D8%B1-%D9%81%D8%A7%DB%8C%D9%84-%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%DA%A9%D8%AA%D8%A7%D8%A8-bash2003-%D8%A8%D8%AE%D8%B4-1-5-hcn2awr78hc7</link>
                <description>درود، توی قسمت قبل در مورد مسیر های مطلق و نسبی یاد گرفتیم. و بیشتر با فایل سیستم آشنا شدیم. فهمیدیم که منظورمون از root یا ریشه و اون شکل درختی ای که در دو قسمت قبل خونده بودیم چی بوده و در نهایت دید بهتری نسبت به فایل سیستم پیدا کردیم.امروز میخوایم دیگه بریم و شروع کنیم به نوشتن یک سری دستور و در نهایت کار با bash. به این منظور باید یک مهارت رو یاد بگیریم. و اون هم navigation یا جابه‌جا شدن در فایل سیستم هست. این کمک بزرگی به ما میکنه تا کم کم با این محیط بهتر آشنا بشیم و دست و ذهنمون بهش عادت کنه!برای یادگیری این مهارت نیاز داریم تا با ۴ دستور آشنا بشیم :cd : توضیحاتتوضیحات : pwdتوضیحات : lsتوضیحات : exitآماده اید؟ این &quot; توضیحات &quot; که گذاشتم به این خاطر هست که آخر این پست برگردید و برای خودتون توضیح بدید که هر دستور دقیقا چیکار میکنه.پیشنهاد میکنم از الان کمر همت برای تمرین رو ببندید. چون این تازه شروعشه!بریم شروع کنیم!خب اول از همه باید بگم همونطور که میدونید ما میخوایم از شل استفاده کنیم و گفتیم توی قسمت های قبل که شل توی محیط ترمینال زندگی میکنه پس اولین کاری که باید بکنیم چیه؟باید ترمینال رو باز کنیم! (البته همونطور که میدونید این شبیه ساز ترمینال هست که به اختصار بهش میگیم ترمینال) چطوری؟ اگر سیستمتون لینوکسه که خداروشکر میکنم تقریبا اکثر سیستم های لینوکسی ترمینال دارند. و کافیه یه سرچ کنید terminal و بعد ورود کنید. یا حتی میتونید از کلید ترکیبی : Ctrl + Alt + T استفاده کنید که تقریبا میشه گفت کلید ترکیبی استاندارد برای باز شدن ترمینال هست!ممکنه این کلید براتون کار نکنه! که خب بستگی به توزیعتون میتونید سرچ کنید! کافیه توی گوگل بنویسید :terminal open shortcut &lt;your distro name&gt; [optional: you could add your desktop name: KDE]&lt;distro name&gt; : همون نام توزیعتون هست[desktop name ] : همون نام دسکتاپی که استفاده میکنید مثلا گنوم یا kde یا هر چیز دیگهمثلا من اینو سرچ میکنم :terminal open shortcut for Arch linux - endeavourosو نتیجه میشه این :فضای ترمینالخب حالا که تونستیم ترمینالمون رو بیاریم بالا بیاید با فضای ترمینالمون آشنا بشیم.ترمینال ها اصولا همچین فضایی دارند :همونطور که میبینید یه صفحه سیاه یا تیره و یه محیط متنی ساده. که یک چیزی تو مایه های چیزی که توی عکس میبینید توش نوشته شده و منتظر این هست که شما یه چیزی بنویسید (اینو از کجا میفهمیم؟ از اون مستطیل پررنگ سفید که نشون دهنده این هست که الان میتونیم از کیبردمون استفاده کنیم و توی ترمینال بنویسیم.)اما این متنی که در تصویر نوشته شده چیه؟به این میگن پرامپت (prompt) یا بهتره بگم shell prompt این در حقیقت یه متن کوچول هست که یه سری اطلاعات به ما میده.مثلا اینجا و توی کامپیوتر من shell prompt ام اینه :[fix@staff ~]$کلمه fix نام کاربری یا username من هنگام ورود به کامپیوترم هست.نکته :توی لینوکس ما موقع نصب سیستم عامل یک user name و یک Machine name یا نام کامپیوتر بعلاوه password یا رمز وارد میکنیم.و هر بار که میخوایم به سیستممون ورود کنیم از username و password مون استفاده میکنیم.بگذریم کلمه ای که بعد از @ میاد نام ماشین یا کامپیوتر ماست که در هنگام نصب من نام staff رو انتخاب کردم.بعدش با یه فاصله یک علامت ~ (که بهش تیلد یا tilde میگیم) نشون داده شده. که در حقیقت این بخش تغییر میکنه . جلو تر بهتون میگم معنای ~ چی هست ولی اینو بدونید که این بخش در حقیقت داره جایی که شما هستید رو نشون میده. همون current working directory شما.بعدش در آخر یه علامت $ ساین هست که این نشون دهنده اینه که shell آمادست تا شما دستور رو وارد کنید و به شما در لحظه پاسخ بده!وقتی ترمینال رو باز میکنیم، به طور پیشفرض ترمینال یک شل رو برای ما بالا میاره. برای این که مطمئن بشیم که از bash استفاده میکنیم بهتره که اول از همه دستور bash رو بنویسیم این باعث میشه که اگر ترمینال از شل دیگه ای استفاده میکنه برامون bash رو باز کنه. و مطمعن باشیم که داریم از bash استفاده میکنیم :[fix@staff ~]$ bash
[fix@staff ~]$ خب اگر دستور bash رو زدید و شل پرامپت رو بهتون نمایش داد پس شما توی bash هستید و آماده ایم که کارمون رو شروع کنیم.این قضیه رو در نظر داشته باشید که به هر بار که در شل یک دستور رو مینویسید شل به شما پاسخ میده و با نشون دادن شل پرامپت از شما درخواست دستور بعدی میکنه! و یه جورایی منتظر دستور بعدی میشه.و آما navigation یا جابه‌جا شدنتوی پست قبل گفتیم در فایل سیستم یه همچین ساختاری داریم :‍‍‍/
|----directory1/
|    |----subdirectory1/
|    |    |----file.html
|    |----file.txt
|----directory2/حالا فکر کنید میخوایم در محیط ترمینال و شل که یک محیط متنی هست جابه‌جا بشیم و به این ور و اون ور بریم تنها دو چیز برای این کار دست ما رو میگیره استفاده از یک سری دستورات و همینطور یک مفهوم کلی.همونطور که تا الان میدونیم ما وقتی نام فایل سیستم میاد وسط همین شکل بالا رو تصور میکنیم. که یک root داریم و چند دایرکتوری، ساب دایرکتوری و فایل.خب قبل از این که بریم سراغ دستوراتی که به ما در navigation کمک میکنند بهتره که اول با ساختار دستورات در bash اشنا بشیم.ساختار کلی دستورات در bashببینید به طور کلی دستورات برنامه هایی هستند که ما میتونیم با نوشتن نامشون در ترمینال اون ها رو اجرا کنیم همونطور که یکم بالا تر با نوشتن نام bash در حقیقت برنامه و شلی به نام bash رو اجرا کردیم.پس به طور کلی برای استفاده از دستورات کافیه نام اون ها رو بدونیمهر دستور میتونه یه سری ورودی هم بگیره که بهشون میگیم آرگومان یا argument بعضی از دستورات آرگومان دارند بعضی هاشون هم ندارند.جلو تر با یه سری چیز باحال تر آشنا میشیم که میتونیم به قدرت عجیبی در هنگام استفاده از دستورات برسیم که اون ها در حقیقت آپشن یا flag نام دارند. (به طور استاندارد بهشون میگن آپشن) که یه جور ورودی یا آرگومان هستند که به واسطه اون ها میتونیم رفتار معمولی دستور رو دستخوش تغییر کنیم مثلا فکر کنید یه دستور هست که کلا هر متنی بهش بدید قرمزش میکنه شما میتونید به واسطه استفاده از یک آپشن رنگ، کاری کنید که دیگه رنگ متن قرمز نباشه و یه چیز دیگه باشه . اینجوری کاری کردید که اون دستور یه کار دیگه بکنه!آشنا میشیم باهاشون نگرانش نباشید.دستور اول cd یا change directorycd یا change directory یک پورتال که کافیه بهش path یا مسیر رو بدی. و بومم تو اونجایی البته اگر چنین مسیری باشه!این دستور همونطور که از نامش پیداست مثل یک portal میمونه در حقیقت میتونیم به واسطه cd به مسیر های مختلفی که در فایل سیستممون هست بریم و جامون رو عوض کنیم و به دایرکتوری های مختلف سر بزنیم.نحوه استفاده از cd :به این شکل هست که کافیه مثل تمام دستورات نامش رو بنویسیم و بعد مسیری که میخوایم به اونجا بریم رو به شکل یک آرگومان بهش بدیم.[fix@staff ~]$ cd pathهمونطور که دیدید بعد از cd من یک فاصله گذاشتم و آرگومان رو نوشتم (که اینجا همون مسیر یا path هست). پس آرگومان ها در حقیقت با یک فاصله از دستور قرار میگیرند.برای مثال فکر کنید میخوام به آدرس usr/share/ برم پس مینویسم :[fix@staff ~]$ cd /usr/share/بعد از این که نوشتم کلید &lt;enter&gt; رو میزنم تا دستور رو به شل بدم.خب حالا چی میشه؟ بوووممم شما از جایی که بودید به دایرکتوری share رفتید. یه جورایی الان اونجایید.چیزی که shell prompt و بعد از وارد کردن این دستور به شما نمایش میده اینه :cd /usr/share/ کاری که میکنه اینه که ما رو به دایرکتوری share در دایرکتوری usr که خود اون در root قرارداره میبره!اگر دقت کرده باشید جایی که قبلا ~ بود الان به share تغییر کرد در حقیقت الان shell prompt داره بهمون میگه که هی شما در دایرکتوری share قرار دارید. و بعد هم منتظره که دستور بعدی رو وارد کنید.پس در حقیقت cd کار خاصی نمیکنه جز این که ما رو به مسیری که بهش میگیم میبره.اینم یه توضیح کوچولوخب اگر دقت کرده باشید من توی مثال بالا از یک absolute path استفاده کردم (اگر نمیدونید چیه قسمت قبل رو بخونید) حالا اگر بخوام از یک relative path استفاده کنم چی؟ خیلی سادست کافیه جای این که یک absolute path رو به cd بدیم از relative path استفاده کنیم اما قبل از این که بریم این کار رو کنیم پیشنهاد میکنم بریم تا با دوتا دستور آشنا بشیم که خیلی در بحث استفاده از relative path برای cd کمکمون میکنندستور pwd یا print working directoryاولین دستور pwd هست. این دستور همونطور که از نامش پیداست کل کاری که میکنه اینه که جایی که هستیم (دایرکتوری ای که درش هستیم) رو به شکل یک absolute path بهمون نمایش میده در حقیقت مسیر اون جایی که هستیم رو بهمون میده و میگه که دقیقا کجای جهان (فایل سیستم) هستیم.بیچاره!pwd یک خصلت باحال داره هیچ وقت نمیخوابه و چشماشو نمیبنده چرا؟ چون شما در فایل سیستم مدام در حال تغییر جایگاه و جابه‌جا شدن هستید. و pwd مدام باید بدونه که کجا هستید به همین خاطر میتونید به شکل یک فرد خسته با چشمای قرمز تصورش کنید که از خستگی داره روانی میشه و توی یک کاغذ مدام current working directory شما رو یادداشت میکنه تا وقتی که با استفاده از دستور pwd ازش خواستید مسیر مطلق current working directory تون رو بهتون بده.بریم یه کوچولو باهاش کار کنیم :[fix@staff ~]$ pwd
/home/fix
[fix@staff ~]$ cd /usr/share
[fix@staff share]$ pwd
/usr/share
[fix@staff ~]$ خب بزارید خط به خط توضیح بدم :لحظه ای که به ترمینال ورود کردم با استفاده از دستور pwd دقیقا فهمیدم که کجای جهان هستم . که به من در خط دوم پاسخ داده شده /home/fix/ که یعنی اینجا هستم.تو خط سوم با استفاده از cd جام رو عوض کردم و به دایرکتوری share رفتم و در خط ۵ ام با دستور pwd فهمیدم که دقیقا کجای جهان هستم : /usr/share/تو خط ششم هم که طبق معمول شل منتظر هست که دستور بعدی رو بهش بدم.همونطور که میبینید تمام پاسخ های pwd همون مسیر های مطلق یا absolute path ها هستند. مثلا ما توی خط چهار میدونیم که در دایرکتوری share هستیم چون توی shell prompt نوشته برامون.اما اگر ندونیم که دقیقا در کجا هستیم میتونیم از pwd برای اطمینان استفاده کنیم.اینم یه توضیح کوچولو!راستی همونطور که دیدید ما برای استفاده از pwd نیازی دادن آرگومان نداریم. این دقیقا همون نکته ای هست که بالا گفتم ممکنه بعضی از دستورات آرگومان داشته باشند بعضیاشون هم نداشته باشند. یا حتی زیاد مهم نباشه استفاده ازشون!نکته :هر چند که pwd دوتا آپشن داره که اونا هم یه جور آرگومان هستند ولی خب کار خاصی نمیکنند. البته بعدا باهاشون آشنا میشیم. توی مقاله دوم یا سوم فصل ۲دستور ls یا list contentاین دستور از اون دستور باحالاست از اونا که تقریبا مدام ازش استفاده میکنید و یه جورایی یه کمک بزرگ برای cd هست. کارای خاصی میکنه ولی بزارید فعلا در همین حد بهتون بگم که ls برای لیست کردن محتویات جایی که هستیم استفاده میشه.به این شکل که کافیه بنویسید ls و بعد بوم فایل ها و دایرکتوری های داخل current working directory تون براتون لیست میشه. و دیگه به راحتی میتونید به وسیله cd و البته relative path جا به جا بشید.آخ که چقدر باحال و راحت میشه. جابه‌جا شدن دیگه نیازی نیست برای رفتن به یه ساب دایرکتوری که توی current working directory تون هست از absolute path استفاده کنید.بیاید برای این که این مطلب رو جا بندازم براتون از همون ساختار فایل سیستم استفاده کنیم :‍‍‍/
|----directory1/
|    |----subdirectory1/
|    |    |----file.html
|    |----file.txt
|    |----subdirectory2/
|----directory2/خب فکر کنید ما در / هستیم پس :[fix@staff /]$ pwd
/حالا تصور کنید که با استفاده از cd و یک absolute path رفتیم به /directory1 :[fix@staff /]$ cd /directory1/
[fix@staff directory1]$ حالا فکر کنید از اینجا میخوام به /subdirectory1 برم، خب دو کار میتونم بکنم میتونم از absolute path استفاده کنم و یا این که از relative path استفاده کنم.اگر از absolute path استفاده کنم باید بنویسم :[fix@staff directory1]$ cd /directory1/subdirectory1/
[fix@staff subdirectory1]$یه جورایی باید کل مسیر رو بنویسم و یا حفظ باشم. حالا اگربخوام از مسیر relative استفاده کنم چی؟کافیه که اول محتویات داخل /directory1 رو لیست کنیم، که برای این کار از دستور ls استفاده میکنیم :[fix@staff directory1]$ ls
subdirectory1/ file.txt subdirectory2/همونطور که میبینید برامون لیست شد. الان میدونیم که در جایی که هستیم دو subdirectory داریم و یه دونه فایل. حالا اگر بخوایم به هر کدوم از اون subdirectory ها بریم میتونیم با خیال راحت از relative path و دستور cd استفاده کنیم : (realtive path رو که میدونید چیه و حتی میتونید از پست قبل بشناسیدش اگر نمیدونید پست قبل رو بخونید )به این شکل :[fix@staff directory1]$ cd ./subdirectory1
[fix@staff subdirectory1]$این رو میتونید با اون بالایی که مجبور بودید از absolute path استفاده کنید. مقایسه کنید.حتی میتونید با زدن pwd بفهمید که دقیقا باید از چه absolute path ای استفاده میکردید تا به اینجا برسید :[fix@staff directory1]$ cd ./subdirectory1
[fix@staff subdirectory1]$ pwd
/directory1/subdirectory1
[fix@staff subdirectory1]$ میبینید اینجا relative خیلی ساده تر و راحت تره. تازه توی فصل های آینده چیزایی در مورد ls و ترمینال و خلاصه این مباحث یاد میگیرید که هر لحظه براتون همه چیز منطقی تر و واضح تر میشه.ls هست و لیست کردن محتوای دایرکتوری ای که درش هستیم.پس به طور کلی ls رو میتونید به شکل یه آدم ببینید که یه کیف همراهش داره که تمامی اطلاعات مربوط به محتویات داخل یک دایرکتوری رو همراه خودش داره و هروقت ازش درخواست کنید اونا رو بهتون میده.اینم یه توضیح کوچولوتوی توضیح براتون نوشتم inode ببینید این خیلی مهمه که بهتون بگم که ls کامل نشده یعنی چیزی که اینجا در مورد ls یاد گرفتید چیز خیلی خیلی خیلی کوچیکی هست. توی پاراگراف بالا هم یه اشاره ریز کردم و گفتم که ls تمامی اطلاعات مربوط به محتویات یک دایرکتوری رو همراه خودش داره. که خب توی این پست صرفا در همین حد کافیه توی پست اول فصل ۲ که یه جورایی یه مرور کلی و بحث تکمیلی در مورد فصل اول هست . کلا براتون بازش میکنم و بهتون از inode ها هر چیزی که در ls هست میگم.سوال مهم چطوری به عقب برگردیم؟خب تا الان فهمیدیم که میتونیم از cd استفاده کنیم و دایرکتوریمون رو تغییر بدیم و بریم یه جای دیگه ولی خب اگر بخوایم برگردیم عقب چی؟ برگردیم جایی که بودیم!برای پاسخ دادن به این سوال اول باید یه نکته رو بگم :ببینید تا زمانی که inode ها رو نگم نمیتونم براتون کاملا این قضیه رو جا بندازم پس بیاید اینجا یه لطفی به من و خودتون بکنید و این بخشی که این پایین میگم رو بدون دلیل بپذیرید.ببینید در هر کجای فایل سیستم که باشید تاکید میکنم هر کجا که باشید حتی اگر در یک دایرکتوری باشید که هیچ دایرکتوری یا فایلی داخلش نیست . به طور پیشفرض دو دایرکتوری پنهان وجود دارند.میدونم یکم مسخرست که بگم شما داخل یه دایرکتوری هستید که هیچی توش نیست و بعد سریع بگم نه ببین دوتا دایرکتوری پنهان هست.ولی کلا برای سادگی و درک این موضوع این قضیه رو بپذیرید هیچ دایرکتوری ای کاملا خالی نیست و همیشه دوتا دایرکتوری مخفی تو خودش داره اوکی؟حالا این دایرکتوری مخفی ها چیا هستند؟ یکیشون در حقیقت آدرس خود اون دایرکتوری هست. و دیگری آدرس دایرکتوری قبلیش. یعنی دایرکتوری پدرش.بزارید برای جا انداختن این موضوع باز از اون ساختار فایل سیستم استفاده کنم :‍‍‍/
|----directory1/
|    |----subdirectory1/
|    |    |----file.htmlببینید توی ساختار بالا ما یه دایرکتوری داریم داخل روت به اسم directory1 که داخلش یه دایرکتوری و یه فایل هست، که میتونم با دستور ls ثابتش کنم :[fix@staff directory1]$ ls
subdirectory1/ file.txtحالا من گفتم تمام دایرکتوری ها در فایل سیستم به طور پیشفرض دوتا دایرکتوری تو خودشون دارند که پنهان هست.و گفتم یکیشون ادرس خود دایرکتوری رو نشون میده و دیگری آدرس دایرکتوری قبلی یا پدر. حالا این یعنی چی؟توی ساختار بالا .( که میارمش این پایین راحت ببینیدش) :‍‍‍/
|----directory1/
|    |----subdirectory1/
|    |    |----file.htmlتصور کنید من در /subdirectory1 هستم. دایرکتوری پدر میشه دایرکتوری قبلی یعنی همون /directory1 اگر مسیر مطلق subdirectory1 رو براتون بنویسم میتونید این قضیه رو بهتر بفهمید :/directory1/subdirectory1/که الان میتونید قشنگ ببینید مثلا پدر directory1 روت یا / هست و خود directory1 پدر subdirectory1 هست.خب برگردیم به اون دوتا دایرکتوری پنهان که توی همه دایرکتوری ها هستند :این دو دایرکتوری به این شکل دیده میشن :اونی که به آدرس خود دایرکتوری اشاره میکنه با نقطه . نشون داده میشهو اونی که به آدرس دایرکتوری پدر اشاره میکنه با دو تا نقطه .. نمایش داده میشهحالا شاید براتون جالب باشه که بگم اون نقطه ای که در relative path استفاده میکردیم دقیقا نشون دهنده اینه که ما از جایی شروع میکنیم که هستیم. که اینو قبلا بهتون گفتم الان میفهمید که چرا از نقطه استفاده میکنیم. چون این نقطه همون دایرکتوری پنهانی هست که به آدرس خود دایرکتوری اشاره میکنه.یعنی اگر بتونیم اینا رو ببینیم به این شکل هست که اگر در directory1 باشیم که پدرش / هست :[fix@staff directory1]$ pwd
/directory1/
[fix@staff directory1]$ ls
../ ./ subdirectory1/ اگر فرض کنیم که ls بهمون این دایرکتوری های پنهان رو نمایش میده میونیم به این شکل بالا ببینیمشون. و در حقیقت /. همون directory1 هست که داخلش هستیم و /.. همون دایرکتوری قبلی.نکته :در حقیقت بچه ها ls با یه آپشن میتونه تمامی فایل های مخفی رو به ما نشون بده. توی لینوکس هر فایلی که مخفی باشه نامش با یک نقطه شروع میشه مثلا اگر یه دایرکتوری مخفی به اسم pics داشته باشید در لینوکس باید با یه نقطه شروع بشه یعنی اینجوری pics. خلاصه از اونجایی که هنوز در مورد آپشن ها توضیح ندادم . و میخوام توی قسمت بعد توضیح بدم. فعلا بیاید تصور کنید که نمایش میده.برای اونایی که با فلگ و آپشن آشنا هستند نام این آپشن a هست که میتونید استفاده اش کنید تا اینو ببینید.پس اگر ما در directory1 باشیم و بخوایم به عقب برگردیم کافیه که این کار رو کنیم :[fix@staff directory1]$ cd ../
[fix@staff /]$ pwd
/همونطور که میبینید به واسطه این یه دایرکتوری برگشتیم عقب ما میتونیم به هر اندازه که دلمون میخواد عقب برگردیم مثلا اگر در یک همچین مسیری باشیم :/dir1/dir2/dir3/dir4و بخوایم از dir4 به dir2 برگردیم نیاز نیست که از cd و absolute path استفاده کنیم کافیه که از همینجایی که هستیم بنویسیم :[fix@staff dir4]$ cd ../
[fix@staff dir3]$ cd ../
[fix@staff dir2]$ pwd
/dir1/dir2/من برای سادگی در چند مرحله این کار رو کردم وگرنه میتونستیم بنویسیم :[fix@staff dir4]$ cd ../../
[fix@staff dir2]$ pwd
/dir1/dir2/که یه جورایی انگار دوبار برگشتیم عقب.دستور exitحالا که کارمون با ترمینال و بش تموم شد میخوایم که از ترمینال خروج کنیم . این کار رو با دستور exit انجام میدیم و بومم چه اتفاقی میوفته؟ ترمینال بسته میشه!چه در نازیه؟ خدایی اینجوری نیست؟خب امیدوارم براتون این قضایا جا افتاده باشه. در مورد ~ tilde که بالا بهتون گفتم و خیلی چیزای دیگه توی قسمت بعد صحبت میکنیم. یعنی در واقع توی بخش اول فصل دوم.توی این مقاله کلی چیز یاد گرفتیم واقعا از دلیل استفاده از نقطه در relative path و اهمیت دونستن این دو نوع مسیر و خلاصه جابه‌جا شدن و لیست کردن محتویات و فهمیدن این که کجای فایل سیستم هستیم و خلاصه کار با دستورات و آشنایی جزئی باهاشون و کلی چیز دیگه.تمرین :ترمینال رو باز میکنیدls میزنید.با استفاده از cd به دایرکتوری های مختلف میرید هم از مسیر نسبی و هم مسیر مطلق استفاده میکنید.برای بازگشت به جایی که بودید pwd میزنید و مسیر مطلق رو میبینید و یک بار برای بازگشت از cd و مسیر مطلق تا اونجا استفاده میکنید.و یک بار هم از .. و مسیر نسبی.و اینقدر این کار رو میکنید تا خسته شید و در نهایت exit رو بزنید و خروج کنید. مدام از pwd و ls و cd استفاده کنید. هی سعی کنید بیشتر کشف کنید که چطوری کار میکنن.بعد از تقریبا ۵ یا ۶ بار استفاده از cd و ls و pwd تقریبا براتون تمام این مطالب جا میوفتندحتما این تمرین رو انجام بدید خیلی مهمه وگرنه رسما هیچ ارزشی نداره این نوشته . بدون تمرین صرفا یه مشت حرف هست!سخن پایانیممنونم که یه فصل رو با من بودید. یه فصل یعنی ۵ تا بخش از فصل اول کتاب bash۲۰۰۳ و کلی چیز یاد گرفتیم. دوستون دارم و فصل بعدی رو از ۲ روز دیگه نوشتنش رو شروع میکنم. البته توی این مدت بیکار نمیشینم و سعی میکنم یه ویدیو کلی از فصل اول درست کنم و همه چیز رو اون تو توضیح بدم. اینجوری کتاب کامل تر هستش.حتما انتشارات فاک د کد رو دنبال کنید تمام این کتاب اونجا منتشر میشه.https://virgool.io/FuckTheCodeکتاب bash2003 تحت لایسنس CC-BY-SA منتشر میشه و میتونید آزادانه و با خیال راحت استفاده کنید.حالا که به اتمام فصل اول رسیدیم و یه جورایی یه session رو قراره ببندیم بهتره که منم از exit استفاده کنم و از خدمتتون مرخص شم پس اره فعلا! تا فصل دومexit</description>
                <category>Amber Eye</category>
                <author>Amber Eye</author>
                <pubDate>Sun, 24 Aug 2025 11:21:10 +0330</pubDate>
            </item>
                    <item>
                <title>مفهوم مسیر های مطلق و نسبی در فایل سیستم | کتاب bash2003 بخش 1-4</title>
                <link>https://virgool.io/FuckTheCode/%D9%85%D9%81%D9%87%D9%88%D9%85-%D9%85%D8%B3%DB%8C%D8%B1-%D9%87%D8%A7%DB%8C-%D9%85%D8%B7%D9%84%D9%82-%D9%88-%D9%86%D8%B3%D8%A8%DB%8C-%D8%AF%D8%B1-%D9%81%D8%A7%DB%8C%D9%84-%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%DA%A9%D8%AA%D8%A7%D8%A8-bash2003-%D8%A8%D8%AE%D8%B4-1-4-ti462cr2ty4m</link>
                <description>فصل اول [ قسمت چهار از پنج ] (قسمت قبل)فایل سیستم؟ این عکس رو آخر این مقاله میفهمید. نگرانش نباشید.خب بریم سراغ یکی از مفاهیم به شدت مهم . همونطور که در قسمت قبل براتون گفتم، ما در فایل سیستم کلا سه مفهوم کلیدی داشتیم :root یا ریشه : که در مثالمون به تنه و ریشه ی درخت تشبیه شده بود که کلی شاخه بهش متصل شده بودند.directory یا دایرکتوری (فولدر) : که این هم در مثالمون به شاخه های درخت تشبیه شده بود.file یا فایل : که در واقع توی مثالمون به برگ ها تشبیه شده.خب حالا میخوایم به وسیله این مفاهیم کلیدی ای که در رابطه با ساختار کلی یک فایل سیستم یاد گرفتیم. بیایم و سعی کنیم در رابطه با مسیر ها صحبت کنیم. اما قبل از هر چیز یه یادآوری کوچولوی دیگه از پست قبل داشته باشیم.یادآوری چطور سه مفهوم بالا رو در CLI نشون میدادیم؟قبل از ادامه لطفا چند لحظه سعی کنید که به این قضیه پاسخ بدید.اگر نتونستید مشکلی نیست یاد آوری برای همینه :برای نشون دادن root در CLI و بالطبع در شل ما از علامت اسلش / استفاده میکردیم.برای نشون دادن directory ها از ترکیب نام + یک اسلش / استفاده میکردیم وبرای نشون دادن فایل ها صرفا از نامشون استفاده میکردیم.پس اگر میخواستیم یک فایل رو که نامش ali.txt بود و در دایرکتوری ای به نام users که خود این دایرکتوری در root قرار داره رو نشون بدیم کافی بود بنویسیم :/users/ali.txtکه نحوه خواندن و نوشتن این قضیه رو در پست قبل براتون کامل توضیح دادم. پس اگر این قضیه براتون آشنا نیست اون بخش رو مطالعه کنید.خب بریم سراغ اصل مطلب.مسیر ها در فایل سیستمخب دیگه بریم سراغ بحث اصلیمون برای این که خوب این مبحث رو درک کنیماول کمی زاویه دیدمون رو به ساختار درختی فایل سیستم تغییر بدیم :تا الان همش داشتیم فایل سیستم رو به شکل یک درخت واقعی میدیدم. از الان بیاید بیشتر با شکل واقعیش آشنا بشیم.‍‍‍/
|----directory1/
|    |----subdirectory1/
|    |    |----file.html
|    |----file.txt
|----directory2/
همونطور که مبینید تمام فایل ها و دایرکتوری های داخل سیستم ما با توجه به چیزی که بالا داریم میبینیم اصولا در یک فایل سیستم و در محیط CLI به این شکل دیده میشوند.اینجا چند تا نکته وجود داره root یا همون / زیر مجموعه هیچکس نیست و بالا تر از root چیزی نداریم.همه چیز از root شروع میشه بعدش دایرکتوری هایی رو داریم که داخل روت قرار گرفتند مثل directory1 و directory2 هر دایرکتوری میتونه توی خودش فایل یا دایرکتوری دیگه ای داشته باشه مثلا directory1 داخل خودش subdirectory1 و یه دونه فایل به نام file.txt داره.که اون subdirectory هم داخل خودش یه فایل داره به نام file.html این چیزی که دارید میبینید شاید در نگاه اول براتون عجیب باشه ولی واقعیتش اینه که خیلی سادست و به زودی درکش میکنید. (البته اگر تا الان نکردید)خب حالا که دیگه از شکل درخت اومدیم بیرون و به شکل واقعی تری به فایل سیستم نگاه کردیم.بریم سراغ مسیر.مسیر ها در فایل سیستمتوی پست قبلی گفتم یه جمله رو بدون سوال و پرسش حفظ کنید و اون این بود که همه چیز در لینوکس فایل هست همه چیزززز خب با توجه به این جمله وقتی شما میخواید با سیستم عاملتون کار کنید اصولا نیاز دارید که برای هر کاری گریزی به چند فایل بزنید و با فایل ها کار کنید.از پست قبل میدونید که جایی که فایل های ما ذخیره میشوند دقیقا همین فایل سیستم هست پس باید بتونیم در فایل سیستم جا به جا بشیم و به سمت فایل هایی که نیاز داریم بریم.برای این که بتونیم جابه‌جا بشیم باید مفهوم مسیر رو درک کنیم .مسیر در حقیقت همون راهی هست که ما باید از جایی که هستیم پیش بگیریم تا برسیم به مقصدمون.در فایل سیستم دو نوع مسیر داریم مسیر مطلق و مسیر نسبی.مسیر مطلق (absolute path)تصور کنید که فردی از شما آدرس آرامگاه شاعر بزرگ پارسی، حافظ رو میپرسید و شما از مبدا جهان و جایی که عالم شروع میشه.شروع به آدرس دادن میکردید برای مثال می‌گفتید :جهان - فضا -گروه محلی - کهکشان راه شیری - بازوی برساووش - بازوی شکارچی - منظومۀ شمسی - سیارات داخلی - زمین - قارۀ آسیا - خاور میانه - ایران - استان فارس - شیراز - حدفاصل چهارراه ادبیات و چهارراه حافظیه، رو‌به‌روی ورزشگاه حافظیه.آیا قبل از جهان در آدرس بالا چیزی وجود داره؟ در این مثال نه فرض میکنیم بالا تر از جهان چیزی وجود نداره دقیقا مثل root در فایل سیستم.پس اگر بخوایم آدرس مطلق یک فایل رو در فایل سیستم بنویسیم : باید از root شروع کنیم یکی یکی دایرکتوری ها رو رد کنیم و به فایلمون برسیم.پس اصولا یکی از خصیصه های یک آدرس مطلق شروع شدن از root هستش .مثال : کدام یک از آدرس های زیر مطلق نیست!؟/users/ali.log
users/ali.log
/users/user/ali.log
/users/user/ali/ali.log...... پاسخ :کمک : گزینه ای که از root یا مبدا جهان شروع نشده آدرس مطلق نیست دیگه.پس میشه ....گزینه : users/ali.logچراشو دیگه خودتون بگید.مسیر نسبی (relative path)حالا تصور کنید در مثال همون حافظ میخواستیم جای استفاده از مسیر مطلق از مسیر نسبی استفاده کنیم.اینجا یه نکته ای رو باید رعایت کنیم :نکته :زمانی که از مسیر مطلق استفاده میکردیم مهم نبود که موقعیت مکانی ما کجاست فقط از مبدا جهان شروع میکردیم تا به مقصد برسیم. و هیچ اهمیتی به موقعیت مکانی خودمون یا کسی که ازمون سوال کرده بود نمیدادیم. اما در بحث مسیر نسبی اینجوری نیست و به موقعیت مکانی خودمون اهمیت میدیم و نسبت به اون آدرس رو میدیم.پس در مسیر نسبی از جایی که هستیم شروع میکنیم و نه از مبدا جهان و root اوکی؟مثلا توی مثال بالا اگر فرض بگیریم که توی استان فارس هستیم میتونیم بگیم :شیراز- حدفاصل چهارراه ادبیات و چهارراه حافظیه، رو‌به‌روی ورزشگاه حافظیهمیبینید ؟ اصولا آدرس نصف و خب خیلی راحت تر شد حتی امکان این که خطایی در هنگام آدرس دهی صورت بگیره هم کمتر شد.خب حالا تا اینجا همه چیز اوکیه ولی یه سوال چطوری در CLI نشون بدیم که از جایی که هستیم شروع کردیم؟خب ما در CLI اصولا یا در root هستیم یا در یک directory. از اونجایی root خودش یه دایرکتوری هست که باقی فایل ها و دایرکتوری ها داخلش هستند پس به طور کلی در CLI ما همیشه در یک دایرکتوری هستیم. که به اون دایرکتوری که درش حضور داریم میگیم working directory یعنی دایرکتوری ای که داریم توش کار میکنیم (یا بهتر بگم اون دایرکتوری ای که توش هستیم)حالا برای نشون دادن working directory همیشه از یک . (نقطه) استفاده میکنیم. و این نقطه در حقیقت مثل یک نام و نشان برای working directory ما میمونه .و خب از اونجایی که نقطه نام working directory ما هست پس میتونیم به شکل یک دایرکتوری نشونش بدیم که گفتم : نام + اسلشپس ما working directory رو به این شکل نمایش میدیم :./تمام پس اگر تصور کنیم که میخوایم از جایی که هستیم بریم به دایرکتوری users و فایل ali.log رو ببینیم کافیه بنویسیم :./users/ali.logالبته این در صورتی کار میکنه که در working directory مون دایرکتوری users وجود داشته باشه . یعنی یه همچین چیزی باشه :‍‍‍/
|----directory1/
|    |----subdirectory1/ 🯅
|    |    |----users
|    |    |    |----ali.log
|    |    |----file.html
جایی که هستید رو با 🯅 مشخص کردم . پس اگر ساختار فایل سیستم این شکلی باشه چون هم دایرکتوری users در working directory تون قرار داره و هم داخلش ali.log هست پس مسیر نسبی ما کار میکنه و در حقیقت بهتره بگیم درسته.خب این پست هم تموم شد.خلاصه ماجرا :زاویه دیدمون رو نسبت به فایل سیستم تغییر دادیم تا در پست بعد بتونیم وارد کار با شل بشیم و بلاخره دستور بزنیم و از طرفی با مسیر های نسبی و مطلق که برای جابه‌جا شدن توی فایل سیستم بهشون نیاز داشتیم آشنا شدیم.و یاد گرفتیم که working directory چی هست و چطوری نمایشش میدیم.تمرین :سعی کنید آدرس خونه یا مثلا آدرس یک شی در آشپز خانه رو برای خودتون یک بار به شکل مطلق و absolute و بار دیگر به شکل relative و نسبی بیان کنید.سخن پایانیقسمت بعدی میریم که دیگه از دستورات استفاده کنیم، انیمیشن ببینیم و در نهایت آخرین بخش از فصل اول کتاب رو تموم کنیم. مرسی که همراهم هستید لطفا حتما انتشارات رو دنبال کنید و اگر دوست داشتید به چنل تلگرام FUCKT8EC0DE بپیوندید (لینکش توی انتشارات هست).https://virgool.io/FuckTheCodeکتاب bash2003 تحت لایسنس CC-BY-SA منتشر میشه و میتونید آزادانه و با خیال راحت استفاده کنید.پست بعدی ساعت ۱۳:۰۰ فردا</description>
                <category>Amber Eye</category>
                <author>Amber Eye</author>
                <pubDate>Sun, 10 Aug 2025 03:40:59 +0330</pubDate>
            </item>
                    <item>
                <title>یونیکس و شبه-یونیکس قدم اول | بخش 3-1 کتاب bash2003</title>
                <link>https://virgool.io/FuckTheCode/%DB%8C%D9%88%D9%86%DB%8C%DA%A9%D8%B3-%D9%88-%D8%B4%D8%A8%D9%87-%DB%8C%D9%88%D9%86%DB%8C%DA%A9%D8%B3-%D9%82%D8%AF%D9%85-%D8%A7%D9%88%D9%84-%D8%A8%D8%AE%D8%B4-3-1-%DA%A9%D8%AA%D8%A7%D8%A8-bash2003-crmlyxr6mq2o</link>
                <description>فصل اول [ قسمت سه از پنج ] (قسمت قبل)خب خب توی این بخش از فصل اول کتاب bash2003 بهتون یه کوچولو در مورد UNIX و سیستم هایUnix-like ( یا شبه یونیکسی) میگم.یونیکس یا UNIX چیه؟به طور خیلی ساده و کوتاه یه سیستم عامل.سیستم عاملی که یکی از دلایل محبوبیت زبان C و افرادی مثل کن تامپسون و دنیس ریچی (سازندگان سیستم عامل یونیکس و C) بود. یونیکس به دلیل این که اولین سیستم عامل قابل حمل (portable) بود خیلی معروف شد .همینطور چند کاره (Multi tasking) و چند کاربره (Multi User) بودن و انعطاف بالاش به معروفیتش کمک کرد از طرفی یونیکس یک رویکرد ماژولار داشت یعنی به شکل ماژولار دیزاین شده بود که همین رویکرد بعد ها به فلسفه یونیکس یا (Unix philosophy) معروف شد.این ماژولار بودن این رو بیان میکرد که هر فانکشن و برنامه در یونیکس باید یک کار کاملا واضح و کوچک رو انجام بده. (که بعد ها همین فلسفه در کتاب Clean Code به عنوان یک قانون برای نوشتن فانکشن های بهتر و تمیز تر در برنامه نویسی بیان شد).و خب از اونجایی که هر فانکشن و برنامه در یونیکس یک کار کوچک رو انجام میداد نیاز به یک ابزار بود که بتونیم باهاش این برنامه ها و فانکشن ها رو با هم به کار بگیریم تا کار های پیچیده تر رو انجام بدیم.اون ابزار Unix Shell بود که به تامپسون شل یا sh (اس اچ) معروف بود. (حالا نسخه پیچیده ترش که در این کتاب بهش میپردازیم bash هست. که یه مشت ویژگی خفن به همین sh (تامپسون شل) که نه بلکه به یه sh (که به بورن شل معروف هست) دیگه که بعد ها جایگزین این sh (تامپسون شل) شده بود اضاف کرده که بهتون میگم چیا هستند.)ممکنه این sh تو sh ای که شد یکم براتون درک این مطلب رو پیچیده کرده باشه یه توضیح بدم :ببینید اولین شلی که ساخته شد unix shell بود که کن تامپسون ساختش و به اختصار بهش میگفتن sh بعد ها یه نفر به اسم bourne اومد یه شل دیگه ساخت که خب جایگزین همین شلی شد که تامپسون ساخته بود که به اونم میگفتن sh حالا bash در حقیقت نسخه پیشرفته تر sh ای هست که bourne ساخته!خب اگر در مورد یونیکس دوست دارید بیشتر بدونید، کلی منبع هست از ویکی پدیا تا کتاب و ... که میتونید مطالعه کنید. هدف من از این که در مورد یونیکس اینه که به فایل سیستم برسم.یکی از مهمترین بخش های سیستم عامل یونیکس فایل سیستمش (Inode-based filesystem) بود. و خب کل بحث ما در این بخش حول محور ساختار این فایل سیستم هستش.خیلی جاها ممکنه بنویسن سیستم فایل که به نظرم هارمونی نداره و یه جوریه! حداقل از نظر من اینجوریه، من ترجیح میدم فارسی بنویسم فایل سیستم. چون حداقل هارمونیش حفظ میشه نسبت سیستم فایل.اما قبل از این که بریم که با فایل سیستم و مفاهیم بامزه اش آشنا بشیم . بیاید یه سر به سیستم عامل های Unix-like یا شبه یونیکس بزنیم.شبه یونیکس یا Unix-like چیه؟خب یونیکس به عنوان اولین سیستم عامل قابل حمل اینقدر محبوب دل ها بود که کلی مشتقات داشت یعنی کلی سیستم عامل بودن که حتی کدهاشون هم همون کد های یونیکس اولیه (UNIX RESEARCH ) بود. یا حالا اون کد ها رو برداشته بودن و یه مشت ویژگی بهش اضاف کرده بودن یا بخشی از کدها دقیقا همون کد های یونیکس بود و خلاصه ربط مستقیمی از لحاظ کدبیسی به پروژه اولیه که به Unix Research معروف بود داشتند.بعد ها یه سری سیستم عامل ها مثل لینوکس بالا اومدن که اینا اصولا از لحاظ کدبیسی شباهتی به کد های شرکت AT&amp;T و یونیکس اولیه نداشتند ولی طراحی ماژولار داشتند، قابل حمل، چندکاربره و چند کاره بودن و خلاصه به شدت به فلسفه یونیکس نزدیک بودند جوری که مثلا دنیس ریچی سازنده یونیکس در رابطه با لینوکس میاد میگه که اقا این یکی از معدود سیستم عامل هایی هست که به شدت به فلسفه یونیکس نزدیکه! با این که کدبیسش فرق میکنه!پس به طور کلی ما یه سیستم عامل یونیکس داشتیم و یه سری مشتقات که بهشون میگن شبه یونیکس. هرچند گروه اصلی ای که امتیاز UNIX رو به عهده داره اصلا این قضیه Unix-like و شبه یونیکس رو قبول نداره و بیشتر به عنوان یه فریب تجاری میشناستش.اگر دقت کرده باشید هر جا از خود UNIX گفتم همه حروف بزرگ بودند و هر جا از Unix-like فقط u بزرگ بود این دقیقا یکی از وجه تمایز های بین سیستم عامل هایی هست که اون گروه UNIX صداشون میکنند و سیستم عامل هایی که مردم Unix-like یا شبه یونیکس صداشون میزنن.هر چند اگر شما پول کافی داشته باشید و یه سیستم یونیکس لایک ساخته باشید (حالا چه از لحاظ کدبیسی شباهت داشته باشه چه از لحاظ فلسفی و فایل سیستمی) با چیزی در حدود چند ۱۰۰ هزار دلار میتونید بگید که سیستم عاملتون UNIX هست! و حتی اجازه و حق تجاری سازیش هم دریافت کنید.حالا که منظورم از شبه یونیکس بودن سیستم عامل لینوکس رو گرفتید. بریم سراغ بحث اصلیمون. ساختار فایل سیستم لینوکس.فایل سیستم (File System) چیست؟فایل سیستم در حقیقت یک بخشی از سیستم عامل هست که به ما امکان ذخیره سازی و بازیابی اطلاعات رو میده. اطلاعاتی که در یک سری فایل بخصوص ذخیره شده اند. اون اوایل وقتی یونیکس به وجود اومد کلا سه نوع فایل رو بیشتر ساپورت نمیکرد :یا فایل های عادی مثل فایل های متنی ordinary filesdirectories یا دایرکتوری ها (کلا توی سیستم عامل های شبه یونیکس و یونیکس به فولدر میگیم دایرکتوری)special files یا فایل های خاص که بهشون device files هم میگن (اینا رو سر موقع اش براتون مثال میزنم.)پس در حقیقت فایل سیستم بخشی از سیستم عامل هست که اجازه میده ما اطلاعاتی که داخل این فایل ها هستند رو ذخیره و حتی بازیابیشون کنیم.اما بریم سراغساختار فایل سیستمساختار فایل سیستم رو اصولا در هر منبعی که اون بیرون پیدا میشه و یکم معتبر باشه به شکل یه درخت تشبیه میکنن درختی که از ریشه و تنه (root)* شروع میشه و کلی شاخه (دایرکتوری) میزنه و هر شاخه میتونه توی خودش یه مشت شاخه دیگه داشته باشه و در نهایت روی این شاخه ها یه مشت برگ (فایل) وجود داشته باشن.یک نکته : اون بخشی که براتون * زدم به این خاطر هست که همین الان بهتون این نکته رو بگم که بچه ها در این درخت فرضی که فایل سیستم بهش تشبیه شده تنه و ریشه رو یکی میدونیم پس هر موقع گفتیم root یا ریشه کلا منظورمون تنه و ریشه هست. (تازه نکته باحال ترش اینجاست که در اکثر اوقات تقریبا ۹۹ درصد مواقع اصلا منظور فقط همون تنه هست.)ریشه و تنه root، شاخه ها directory و برگ ها file هستند.از اونجایی که ما میخوایم لینوکس رو از طریق یادگیری شل یاد بگیریم و از قسمت قبل هم میدونیم منظورمون از شل هایی که در سیستم های شبه یونیکس وجود دارند شل های متنی هست و شل های متنی هم در CLI حضور دارند. پس باید بتونیم به یه نحوی این ساختار درختی ای که بالا براتون توصیف کردم رو به شکل متنی نشون بدیم درسته؟ اما چطوری؟خب اصولا به این شک اجزا رو نشون میدیم :- برای نشون دادن ریشه یا root از علامت / استفاده میکنیم./- برای نشون دادن یک شاخه یا بهتره بگم دایرکتوری از علامت : /directory_name استفاده میکنیم یعنی نام دایرکتوری رو مینویسیم بعلاوه یه /پس اگر یه دایرکتوری داشته باشیم به اسم user اینجوری نشونش میدیم :user/- و برای نشون دادن یک برگ یا بهتره بگم فایل، کافیه نامش رو بنویسیم مثلا فکر کنید یه فایل هست به اسم farhan.txt اینجوری نشونش میدیم :farhan.txtپس به طور کلی در یک فایل سیستم ما با یک ساختار درختی روبه رو هستیم که از ریشه و مخصوصا تنه (root) شروع میشه تا برسیم به شاخه (دایرکتوری) و سپس به برگ (فایل). به این صورت که اگر بخوایم یک فایل با نام farhan.txt که توی دایرکتوری users هست که خودِ اون دایرکتوری هم توی root قرارداره اشاره کنیم میتونیم اینو بنویسیم :/users/farhan.txtکه اگر دقت کنیم نوشتیم / یعنی root که داخلش دایرکتوری users هست . (چرا دایرکتوری؟ چون نام + یه اسلش اومده دیگه) که داخل اون دایرکتوری یه فایل داریم که اسمش farhan.txt هست. پس نحوه خوندنش این شکلیه :از سمت راست :فایل farhan.txt که توی دایرکتوری users قرارداره که اون دایرکتوری توی root قرار داره از سمت چپ : از root میریم به دایرکتوری users که توش یه فایل هست به نام farhan.txt به صورت شکلی :root -&gt; users(directory) -&gt; farhan.txt(file)حالا برای این که مطمعن بشم نحوه خوندنشو یاد گرفتید این رو بخونید و این زیر کامنت کنید :/users/mentors/ali.txtخب حالا که تا حدودی اینا رو فهمیدیم بریم سراغ نشون دادن ساختار استاندارد این فایل سیستم.در یک سیستم عامل شبه-یونیکسی یا بهتره دیگه نگیم اینو بگیم در لینوکس ساختار دایرکتوری های اصلی ما ایناست:/
/bin/
/boot/
/dev/
/etc/
/etc/opt/
/etc/sgml/
/etc/X11/
/etc/xml/
/home/
/lib/
/lib&lt;qual&gt;/
/media/
/mnt/
/opt/
/proc/
/root/
/run/
/sbin/
/srv/
/sys/
/tmp/
/usr/
/usr/bin/
/usr/include/
/usr/lib/
/usr/libexec/
/usr/lib&lt;qual&gt;/
/usr/local/
/usr/sbin/
/usr/share/
/usr/src/
/usr/X11R6/
/var/
/var/cache/
/var/lib/
/var/lock/
/var/log/
/var/mail/
/var/opt/
/var/run/
/var/spool/
/var/tmp/این شاخه ها یا بهتره دیگه بگیم دایرکتوری هایی که میبینید در حقیقت سیستم عامل ما رو شکل میدن. من کم کم در طول مسیر یادگیریمون و در فصل های بعدی تک تک اینا رو بهتون معرفی میکنم و بهتون میگم که چیکار میکنند و اصلا چرا حضور دارند.فقط یک نکته : ممکنه گاهی دایرکتوری هارو بدون اسلش نهایی نشون بدن که مشکلی نیست مثلا به جای : /var/tmp/ به این شکل نمایش میدن : var/tmp/ که اوکیه!مهم برای بهتر یادگرفتن : بچه ها ببینید در ساختار بالا یه دایرکتوری هست که به این شکل نشون دادم /dev/ فقط جان جدتون این رو دیو بخونید نه دِو چون این برای دیوایس هاست و اصلا دیو باید باشه ولی خب Device چون اول dev داره اینجوری نوشتنش. پس بگید دیو تا دیوایس براتون تداعی بشه تا بعدا که دارم دلیل موجودیتش و این که چیکار میکنه و چه فایل هایی توش هستند رو بهتون میگم دیگه یهو نخوره تو ذوقتون که عه؟ من فکر میکردم این برای فایل هایی که develope و توسعه کردیم هست پس مال دیوایساست؟ پشمام...یه نکته دیگه هم بگم : توی توضیح فایل سیستم گفتم به یه درخت تشبیه اش میکنیم که همه چیز از ریشه و تنه که بهش میگیم root شروع میشه، اگر دقت کنید تمام ۴۳ دایرکتوری ای که بالا در ساختار استاندارد نشون دادم از / که نشون دهنده root هست شروع شدن!خب این پست هم تموم شد. فقط یک قانون رو همینجا بدون دلیل و پرسش بیاید حفظ کنیم و اون هم اینه :همه چیز در لینوکس فایل هست همه چیز.کم کم توی فصل ها و پست های بعد هی به این نکته که همه چیز در لینوکس فایل هست پی میبریم پس از الان یه آشناییتی باهاش داشته باشید تا گوش و چشمتون بهش عادت کنه!خلاصه ماجرا :توی این پست فهمیدیم که یونیکس چیه و دلیل محبوبیتش چی بود. بعد فهمیدیم که لینوکس یک سیستم عامل شبه یونیکسی هست که طراحیش به فلسفه یونیکس خیلی شبیه هست. بعد در مورد فایل سیستم گفتیم که فضایی برای ذخیره سازی و بازیابی فایل هامون هستش، که به شکل یک درخت میتونیم بهش نگاه کنیم که به تنه و ریشه اش میگن root و به هر شاخه اش میگن directory و به هر برگش میگن یک فایل. و این نکته هم گفتیم که چطوری این اجزا رو در محیط CLI و در نهایت شل نشون میدیم. در آخر هم به بحث ساختار استاندارد یک سیستم عامل لینوکسی بر اساس استاندارد FHS پرداختیم. که صرفا یه آشناییت کوچولویی داشته باشیم .تمرینلطفا سعی کنید از ساختار استاندارد فایل سیستم لینوکس که در بالا براتون گذاشتم ۵ تاش رو بردارید به دلخواه بخونید میخوام که بفهمید مثلا منظور از این که نوشته شده :/bin/چیه ؟ و خب این باعث میشه ذهن و چشمتون به این شکل از نوشتار عادت کنه و کم کم بتونیم توی جلسات بعدی و مخصوصا فصل های بعدی راحت تر و بدون مقدمه چینی های زیاد به یادگیری بپردازیم.جوابتون رو توی کامنتا بنویسید.سخن پایانیاز پست بعد وارد درک مسیر ها در فایل سیستم میشیم و در نهایت بعد از یک پست دیگه فصل اول تموم میشه و میتونیم دست به کد بشیم و با شل کار کنیم و بیشتر سیستم عامل های شبه-یونیکسی خودمون رو بشناسیم و لینوکس رو یاد بگیریم.کتاب bash2003 تحت لایسنس CC-BY-SA منتشر میشه و میتونید آزادانه و با خیال راحت استفاده کنید.پست بعدی و ساعت ۱۳:۰۰ فردا</description>
                <category>Amber Eye</category>
                <author>Amber Eye</author>
                <pubDate>Sat, 09 Aug 2025 08:29:24 +0330</pubDate>
            </item>
                    <item>
                <title>چرا هنوز هم باید CLI بلد باشیم؟ | بخش 2-1 کتاب bash2003</title>
                <link>https://virgool.io/FuckTheCode/%DA%86%D8%B1%D8%A7-%D9%87%D9%86%D9%88%D8%B2-%D9%87%D9%85-%D8%A8%D8%A7%DB%8C%D8%AF-cli-%D8%A8%D9%84%D8%AF-%D8%A8%D8%A7%D8%B4%DB%8C%D9%85-immjppv6jdas</link>
                <description>فصل اول [ قسمت دو از پنج ] (قسمت قبل)توی پست قبلی، از بش، ترمینال و شل گفتم و یه داستان براتون تعریف کردم. توی اون داستان، در نهایت به جایی رسیدیم که فهمیدیم Bash در واقع یک شل متنی هست.و حالا، با پیشرفت تکنولوژی و فراگیر شدن کامپیوتر های شخصی و لپتاپ ها ما معمولاً از شبیه‌سازهای ترمینال استفاده می‌کنیم تا به این شل‌های متنی مثل Bash دسترسی داشته باشیم.اما اینجاست که یه سؤال مهم پیش میاد:چرا باید از شل‌های متنی استفاده کنیم؟اون هم وقتی کلی محیط گرافیکی خوشگل با دکمه و ماوس داریم که خیلی راحت‌تر به نظر می‌رسن؟ واقعاً چرا؟یادتون میاد دیگه؟ محیط های گرافیکی و دسکتاپ ها هم یک نوع شل به حساب میان!نکته فنی :ببینید در حقیقت ما شل گرافیکی داریم مثل GNOME Shell خب؟ ولی منظورم از این که میگم دسکتاپ ها یه نوع شل گرافیکی محسوب میشن اینه که ما تا الان به شل به عنوان یه رابط بین ما یعنی انسان و سیستم عامل نگاه میکنیم و خب دسکتاپ ها هم همینن و حتی محیط های GUI هم همینن اما. توی قسمت بعدی که ساختار سیستم های Unix-Like رو به تصویر میکشیم و از یونیکس و لینوکس میگیم کم کم محتوا فنی تر میشه. و بهتون میگم که منظورمون کلا از shell همون بحث کلاسیکه که میگه shell چیزی هست که در CLI اجرا میشه و صرفا منظور از شل همون شل های متنی مثل Bash و Zsh و Ash و ایناست. پس تا اینجا موضوع اشتباه نیست صرفا زاویه دیدمون متفاوته و خب این خوبه برای شروع نگرانش نباشید.CLI چیست؟CLI یا Command Line Interface یعنی رابط کاربری‌ای که شما با نوشتن دستور، با سیستم‌عامل یا برنامه‌ها ارتباط برقرار می‌کنید.بذار یه مثال بزنم:وقتی کامپیوترت رو روشن می‌کنی، یه عالمه آیکون، رنگ، پنجره و دکمه می‌بینی.می‌تونی با ماوس کلیک کنی، برنامه اجرا کنی، فایل جابه‌جا کنی و...به این محیط می‌گیم: GUI یا (رابط گرافیکی).اما CLI یه محیط متنیه.اینجا خبری از آیکون و دکمه نیست.باید دستور تایپ کنی و خروجی رو هم به صورت متن ببینی.این همون فضاییه که شل‌هایی مثل Bash توش اجرا می‌شن.خیلی‌ها CLI رو با «ترمینال» اشتباه می‌گیرن!بذارید اینجا یه بار برای همیشه این سه‌ تا مفهوم رو از هم تفکیک کنیم تا ذهنتون مرتب شه:شل (Shell)برنامه‌ایه که بین ما و سیستم‌عامل قرار می‌گیره.دستوراتی که می‌نویسیم رو می‌خونه، تفسیر می‌کنه، و به سیستم‌عامل می‌گه اجراشون کنه.مثلاً Bash، Zsh، Ash و...CLI یا رابط مبتنی بر خط فرمانمحیطیه که شل توش اجرا می‌شه.یه محیط متنی تعاملی هست که ما توش دستور می‌نویسیم و خروجی می‌گیریم.می‌تونه یه محیط واقعی باشه (مثلاً tty در لینوکس)، یا شبیه‌سازی‌شده باشه.اوه این همهه tty تو سیستم من چیکار میکنه؟ به زودی میفهمیم!شبیه‌ساز ترمینال (Terminal Emulator)نرم‌افزاریه که CLI رو برای ما قابل‌دسترس می‌کنه.مثلا تو لینوکس ما Xterm یا konsole یا gnome-terminal و ... رو داریم که این برنامه‌ها:برامون یک CLI بالا میارن.توی اون CLI، یه شل (مثلاً Bash) اجرا می‌شه.ما دستور تایپ می‌کنیم.ترمینال اون دستورها رو به شل منتقل می‌کنه.شل، اونا رو پردازش و اجرا می‌کنه.خروجی رو هم ترمینال بهمون نشون می‌ده.ما یه پنجره داریم (ترمینال) که داره فضای یه اتاق (CLI) رو نشون میده که یه مغز توش نشسته (Shell) و آمادست تا ما یه چیزی رو روی پنجره بنویسیم مثلا بنویسیم سبزش کن! و اونم اجراش کنه و ما خروجی رو از طریق پنجره ببینیم.امیدوارم با دیدن تصویر بالا تونسته باشید درک کنید چی به چیه!حالا که میدونیم CLI چیه بریم ببینیم چرا باید ازش استفاده کنیم چه مزیت هایی داره و به نسبت GUI چی به ما ارائه میده.خب خیلی چیزا هست که در موردشون براتون بگم ولی خیلی هاشون در این سطح از کتاب اصولا گفتنشون به هیچ دردی نمیخوره. پس خیلی سریع فقط به یه سری موارد اشاره میکنم اما در آینده کم کم میتونیم کاربرد های خفن رو در باب مطالب فنی تر و ریز تر بررسی کنیم.چرا باید از CLI و شل های متنی استفاده کنیم؟خب اولین چیزی که به عنوان یه تازه کار باید بهش توجه کنید اینه که یادگیری CLI کمک میکنه سیستم عاملتون رو بهتر بشناسید و در نهایت به یادگیری مفاهیم پایه ای سیستم عامل کمک میکنه!اما این یادگیری صرفا در حد یادگیری مفاهیم و مباحث تئوری نیست. بلکه از اونجایی که میتونید با این محیط کار کنید و دستورات رو تایپ کنید و خروجی بگیرید این قضیه برای شما پرکتیکال تر و عملی تر میشه به طوری که میتونم ادعا کنم که اگر کار با CLI رو بلد بشید میتونید سیستم عامل رو تجربه کنید!ممکن کردن غیر ممکن ها، دومین مزیت CLI اینه که شما میتونید به وسیله ابزار هایی که دارید و صرفا به وسیله تایپ کردن به انعطاف و قدرت عجیب غریبی دست پیدا کنید به طوری که میتونید خروجی برنامه های مختلف رو به عنوان ورودی به برنامه های دیگه بدید و یه زنجیره عجیب غریب بسازید و به نوعی این امکان رو داشته باشید که از توانایی برنامه ها به صورت همزمان و به هم زنجیر شده استفاده کنید. کاری که در GUI عملا غیر ممکن یا بی اندازه سخته!میتونید روی هر سیستمی کار کنید، ممکنه در یک پروژه ای نیاز باشه که یک سیستم عامل رو روی یک چیپ کوچک با منابع محدود بیارید بالا و روش برنامه نویسی کنید خب شما نمیتونید اینجا یک محیط گرافیکی بیارید بالا و روش VSCODE نصب کنید. چون این کار عملا نشدنیه. پس مجبورید که از محیط CLI استفاده کنید و به جای VSCODE مثلا vim یا vi یا nano استفاده کنید . (نگران نباشید کم کم با اینا آشنا میشید) از طرفی ممکنه که شما در سیستم عامل mac با یک نرم افزاری کار کنید و بعد برید توی یه شرکتی و اونجا مجبور باشید با ویندوز کار کنید خب اصولا براتون سخت خواهد بود اما خبر خوب اینه که اگر به استفاده از CLI عادت کرده باشید شما میتونید تقریبا همه جا و با هر سیستم عاملی کار کنید چه mac باشه چه ویندوز و چه لینوکس و ...و دلایل دیگه، ببینید شما میتونید خیلی راحت به یه سرور به حالت ریموت دسترسی پیدا کنید، خیلی راحت کارای تکراریتون رو اتوماتیک کنید، به راحتی در سطح سیستم عامل کد بزنید و از ابزار هایی مثل make و ... برای بیلد کردن هر چه بهتر نرم افزار هاتون استفاده کنید از پشت صحنه و لاگ های برنامه ها خبر داشته باشید به راحتی پکیج ها و برنامه های مختلف رو نصب کنید، از داکر و دیگر کانتینر ها خیلی راحت استفاده کنید چون به هر حال نیاز دارید که از CLI استفاده کنید، با گیت کار کنید و کلی چیز دیگه... که گفتنشون همونطور که گفتم در این سطح صرفا زیاده گویی هست ولی فقط اینو بدونید که شما هر چقدر در دنیای کامپیوتر و برنامه نویسی حرفه ای تر بشید نیاز بیشتری به CLI میکنید میخواید با سرورها کار کنید؟ بهش نیاز دارید با فضاهای ابری؟ باز همینطور و ... خلاصه اگر میخواید کنترل بیشتری روی کامپیوترتون داشته باشید بهتره که کار در محیط CLI و با شل رو یاد بگیرید.خلاصه ماجراتوی این پست از CLI گفتم براتون این که چی هست و چه کاربرد هایی داره، فرق بین ترمینال و CLI رو گفتم که باعث شد که از ترمینال درک بهتری داشته باشیم و به واسطه این دو بش و شل رو هم بهتر درک کنیم.تمرینچیز خاصی نیست، حالا که تا اینجا اومدید این ۴ مفهوم رو تعریف کنید :شل : ترمینال : CLI : بش :جوابتون رو توی کامنتا بنویسید.(پاسخشون فردا ساعت ۱۵:۰۰) در کامنتا گذاشته میشه.سخن پایانیاز پست بعد کم کم وارد آموزشمون میشیم . امیدوارم که تونسته باشم مفهوم CLI و فرقش با ترمینال رو خوب براتون جا انداخته باشم.پست بعدی و ساعت ۱۳:۰۰ فردا</description>
                <category>Amber Eye</category>
                <author>Amber Eye</author>
                <pubDate>Thu, 07 Aug 2025 09:01:24 +0330</pubDate>
            </item>
                    <item>
                <title>بش اسکریپت، فصل اول | کتاب bash2003</title>
                <link>https://virgool.io/FuckTheCode/%D8%A8%D8%B4-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA-%D9%81%D8%B5%D9%84-%D8%A7%D9%88%D9%84-%DA%A9%D8%AA%D8%A7%D8%A8-bash2003-crwu1cd5qxyl</link>
                <description>[ بخش یک از پنج ] یک شروع کوتاهنکته پیش از شروعاین پست یک روایت تاریخی دقیق نیست.صرفاً یک داستان ساده‌ست برای اینکه بتونیم راحت‌تر بفهمیم شل، ترمینال و بش چی هستن — نه اینکه دقیقاً کی و چطوری وارد دنیای کامپیوتر شدن.پس دنبال ترتیب زمانی نباش… دنبال فهم بهتر باش :)بریم سراغ داستان.bash2003 یک کتاب سادهدرود، این کتاب مقدمه بسیار کوتاهی داره، در این حد که براتون از نام کتاب بگم، نامش رو گذاشتم bash2003 که خب عدد ۲۰۰۳ برمی‌گرده به تاریخ انتشار اولین نسخه از bash یعنی ۰۸/۰۶/۱۹۸۹ که جمع این اعداد به ۲۰۰۳ ختم میشه. [ یه جور ادای احترام به روزی که bash شروع شد. ]کتاب ۱۰ فصل داره و از سطح ساده و بگینر شروع میشه.روشی که برای نوشتن پست های کتاب استفاده میکنم. اینه که در هر پست یک موضوع رو کاملا ببندم.و نگذارمش برای پست بعدی. مفاهیم اول گفته میشن بعد کد ها و سپس مثال و تمرین و ادامه ماجرا ...هدف این کتاب یادگیری لینوکس از طریق یادگیری بش هست. ( چون فکر میکنم اینطوری پرکتیکال تره! ).────── 🌀 معرفی bash، ترمینال و شل 🌀 ──────شل چیست؟درسته که توی عنوان این بخش نوشتم : معرفی bash، ترمینال و شل ولی برای این که بتونم این اول کاری خوب و مینیمال bash رو معرفی کنم بهتره که قبلش شل یا پوسته رو بشناسیم.چرا میگم خوب و مینیمال؟ به این خاطر که تا زمانی که باهاش کار نکنیم و خیلی از مفاهیم رو براتون باز نکنم چطور میتونم بیام و یه معرفی کامل بدم؟ اصلا دلیل نوشتن این کتاب آنلاین همینه که بش رو به کتابخونه ذهنمون معرفی کنیم و بتونیم ازش استفاده کنیم و خلاصه باهاش برنامه بنویسیم و در نهایت لینوکس رو هم تا حدود خوبی درک کنیم و بفهمیم!قدیما وقتی صحبت از کامپیوتر ها می‌شد، بحث یه دستگاه یا ماشین بود که کلی جایگاه ورودی و خروجی داشت یه جوری که اگر مثلا میخواستی از فلان ویژگیش استفاده کنی باید یه سیم برمیداشتی و اون رو به ورودی اون قسمت میزدی تا بتونی به نوعی اون بخش رو روشن کنی تا اماده کار بشه.یه چیزی توی مایه های این لعنتی، اگر فیلمش رو ندیدید حتما ببینید! باحالهخلاصه بگم مستقیم داشتی با سخت افزار حرف میزدی.ظهور سیستم عاملبعد ها سیستم عامل ها اومدن یه مشت نرم افزار که به ما کمک میکردن تا بتونیم با سخت افزارمون غیر مستقیم صحبت کنیم.یه جور واسطه بین ما و سخت افزار.اما در هردوی این سناریو ها یه مشکل وجود داشت : صحبت با کامپیوتر ها هنوز هم سخت بود.چون به هر حال، تصورشو بکن باز داری با یه نرم افزار و یه مشت صفر و یک صحبت میکنی، پس نیاز بود که یکم بیشتر به دنیای کامپیوتر ها نزدیک بشیم.شاید خنده دار باشه ولی ایده ای که دانشمندان کامپیوتر داشتند به طرز عجیبی شبیه به این عکس بود :یارو لباس شیر پوشیده رفته وسط گله شیرهاآره، نیاز به یه لباس داشتیم یه چیزی که بپوشیم و یه جورایی توی یه پوسته ای بریم که بتونیم با سیستم عاملمون و در نتیجه با کامپیوتر صحبت کنیم.و اینجوری شد که یه رابط جدید خلق شد، شل، یه برنامه که دستورات و حرفای ما رو میگیره و به سیستم عامل میگه که چطوری اجراشون کنه.shell یا پوسته همون لباس ابر قهرمانی ای هست که باهاش میتونیم با سیستم عاملمون حرف بزنیم.* فکر میکنم الان دلیل نامگذاری رو تا حدودی درک کرده باشید که چرا اسمش پوسته هست!- البته این فقط یه داستانه برای درک بیشتر ولی تقریبا همینه!خب شل ها میتونن گرافیکی باشن مثل دسکتاپ های که هممون داریم اما ما بیشتر با شل های متنی کار داریم مثل bash.پس bash در حقیقت یک شل هست اما به صورت متنی. یعنی مثلا جای استفاده از ماوس و کلیک توش مینویسیمبرو به فلان قسمت از سیستمظهور ترمینالبرگردیم به داستانمون، حالا که خیالمون راحت شده بود و تونسته بودیم یه برنامه برای صحبت با سیستم عامل بسازیم نیاز داشتیم تا یه سری سخت افزار تولید کنیم تا بتونیم به وسیله اونا با shell حرف بزنیم.این سخت افزار ها ترمینال نام داشتند که اصولا یه کیبورد و یه مانیتور بودند که به کامپیوتر اصلی به وسیله یه مشت سیم و دم و دستگاه متصل بودند!اینجوری هر کاربری که میخواست با سیستم حرف بزنه و بهش دستور بده میرفت پشت یه ترمینال مینشست و از یه کیبورد و یه مانیتور استفاده میکرد تا بتونه کارشو بکنه این یه مزیت دیگه هم داشت اونم این که خب چون کامپیوتر ها خیلی بزرگ و گرون بودن یه شرکت میومد یه دونه کامپیوتر با کلی ترمینال میخرید و اینجوری تمام کارمندا میتونستن با سیستم از طریق ترمینالشون صحبت کنن و ازش استفاده کنن.عکس از : ویکی پدیااما امروزه چی؟خب الان همه ی ما یک PC یا لپتاپ داریم پس دیگه نیازی به یه ترمینال فیزیکی نداریم (چون هم کیبورد و هم مانیتور داره و هم کامپیوتره!) پس مجبور شدیم اون ترمینال فیزیکی و سخت افزاری رو تبدیل به یه برنامه کنیم چیزی که بهش میگیم شبیه ساز ترمینال یا Terminal Emulator این یه برنامه هست که دقیقا رفتار همون ترمینال های قدیمی رو تقلید میکنه به این شکل که چند تا کاربر میتونن همزمان از طریق ترمینال به سیستم و منابعش دسترسی داشته باشند و به عبارتی ازش استفاده کنن و از طرفی راه ارتباطیمون با شل و در نتیجه سیستم عامل و بازم در نتیجه سخت افزارمون یا همون کامپیوترمون هم حفظ شده!خلاصه ماجرا :چیزی که توی این بخش از فصل اول bash2003 میخواستم بهتون بگم اینه :shell : یک رابط بین سیستم عامل و ما هستش. یه برنامه که دستورات ما رو میگیره و برای سیستم عامل ترجمه میکنه.bash : یه نوع شل هست، البته از نوع متنیش و نه گرافیکی.ترمینال : قدیما یه سخت افزار برای استفاده از shell بود چون کامپیوتر ها به شکل امروزی نبودن اما امروزه دیگه نیازی بهشون نیست ولی به دلیل این که باز نیاز داریم تا به shell های متنیمون مثل bash دسترسی داشته باشیم نرم افزار هایی برای emulate (یا همون تقلید کردن ) کار ترمینال ها ساختیم . که بهشون میگیم شبیه ساز ترمینال.تمرینهیچی، فقط سعی کنید چند لحظه به تصویر زیر نگاه کنید و سعی کنید یه بار توی ذهنتون داستان شل، بش و ترمینال رو مرور کنید.داستان بسراسخن پایانیامیدوارم که این داستان کوچولو کمک کرده باشه تا مفهوم bash، شل و ترمینال رو فهمیده باشید.این پست تحت لایسنس CC-BY-SA هست دوستان راحت و آسوده استفاده کنید.قسمت بعدی فردا ساعت ۱۳:۰۰بخش بعدی</description>
                <category>Amber Eye</category>
                <author>Amber Eye</author>
                <pubDate>Wed, 06 Aug 2025 07:10:30 +0330</pubDate>
            </item>
                    <item>
                <title>انجمن علمی beginner friendly علوم کامپیوتر؟ 😀</title>
                <link>https://virgool.io/codenevis/%D8%A7%D9%86%D8%AC%D9%85%D9%86-%D8%B9%D9%84%D9%85%DB%8C-beginner-friendly-%D8%B9%D9%84%D9%88%D9%85-%DA%A9%D8%A7%D9%85%D9%BE%DB%8C%D9%88%D8%AA%D8%B1-lmuan8hpwvzn</link>
                <description>Computer Science 12انجمن کامپیوتر ساینس 12، انجمنی علمی-کاربردی هستش که به صورت بگینر فرندلی شروع به فعالیت میکند.  این انجمن قصد دارد که در مدتی کوتاه که به آن *فاز یکِ cs12* می‌گویند، افراد علاقه مند به برنامه نویسی و علوم کامپیوتر را در کنار هم جمع کند و تا پایان **فاز یک** قصد دارد که یک بیس و پایه ی خوب از علوم کامپیوتر را برای افراد حاضر در انجمن به وسیله استفاده از منابع دست اول بسازد.چرا به CS12 نیاز داریم ؟در دنیای امروز، علوم کامپیوتر به عنوان یکی از ارکان اصلی توسعه فناوری و نوآوری شناخته می‌شود. با این حال، در ایران، دانشجویان در دوره لیسانس و حتی افرادی که برای یادگیری کامپیوتر و برنامه نویسی به دانشگاه نمی‌روند به جای یادگیری مباحث بنیادی، بیشتر به استفاده از ابزارهای موجود می‌پردازند؛ به عبارتی ابزارمحوری بیداد می‌کند.این رویکرد نه تنها باعث کاهش کیفیت آموزش می‌شود، بلکه در درازمدت به بدنه تکنولوژی کشور آسیب می‌زند. عدم آشنایی با مباحث پایه‌ای علوم کامپیوتر، مانع از توانمندی برنامه نویسان و دانشجویان در ایجاد نوآوری و پژوهش‌های علمی می‌شود.همچنین، تحریم‌ها و محدودیت‌های اقتصادی، دسترسی به منابع آموزشی و پژوهشی را دشوارتر کرده است؛ از این رو جامعه ی کامپیوتر ایران به نوعی منتور های بسیار کمی رو در خودش جا داده و از طرفی اغلب به دلیل مهاجرت بسیاری از فراد با سواد منتور هایی که بتوان به شکل حضوری در مجامع برنامه نویسی دید را از دست داده ایم.از طرفی منابع به زبان فارسی به شدت کم هستند و استاد محوری باعث کاهش یادگیری جمعی و جمع گرایی در ایران می‌شود. در این شرایط، نیاز به یک انجمن که بتواند به آموزش و پژوهش در این حوزه بپردازد، بیش از پیش احساس می‌شود. این انجمن می‌تواند به عنوان یک جمع تکمیلی برای آموزش و یادگیری علوم کامپیوتر تلاش کند و در نهایت در فاز دوم cs12 که فاز پروژه هست به ساخت پروتکل ها و پژوهش های علمی و ... بپردازد.از این رو، افرادی که در نشست های انجمن حضور داشته باشند میتوانند پس از گذراندن فاز یک و یادگیری پایه ای علوم کامپیوتر و مباحث بنیادی؛در فاز دوم این انجمن شروع به ساخت رزومه ای پویا و علمی کنند.چرا که در فاز دو؛ پروژه ها به صورت تیمی اجرا میشوند و سپس برای هر پروژه مقاله ای طرح میشود تا با کار کردن روی پروژه و تکمیل شدن هر پروژه مقاله هایی در رابطه با مباحثی مثل بهینه سازی و ... نیز در گیت هاب بچه ها ایجاد بشود.این انجمن چه اهدافی دارد ؟ هدف اصلی این انجمن، ارتقاء سطح دانش و مهارت‌های پایه‌ای در حوزه علوم کامپیوتر برای دانشجویان و افراد تازه‌کار است.ما به دنبال ایجاد بستری مناسب برای آموزش مباحث بنیادی علوم کامپیوتر، از جمله ریاضیات گسسته و الگوریتم‌ها هستیم.همچنین، با آموزش مباحث پایه‌ای، هدف ما این است که افراد تازه‌کار را به یک حد پایه از دانش علوم کامپیوتر برسانیم تا بتوانند هزینه‌های ساخت نرم‌افزار را از طریق بهینه‌سازی و درک عمیق‌تر کاهش دهند.همچنین، ما به ترویج پژوهش و نوآوری در زمینه تولید نرم‌افزارهای زیرساختی و استانداردهای جدید در ایران می‌پردازیم.با ترجمه کتاب‌های علمی و طراحی وب‌سایت‌های آموزشی، سعی داریم دسترسی به منابع آموزشی را تسهیل کنیم.در نهایت، ما به دنبال ایجاد یک جامعه علمی پویا و همکار هستیم که در آن افراد از هر قشر و دانشگاهی بتوانند به یادگیری و تبادل دانش بپردازند.برای رسیدن به این اهداف قصد داریم به یادگیری در مورد مباحث زیر بپردازیم : 1. برنامه‌نویسی: اولین قدم این است که یاد بگیریم چگونه با این موجود عجیب و غریب (کامپیوتر) صحبت کنیم و بتوانیم ایده ها و مباحثی که میخواهیم انجام دهیم را به اون بگوییم تا انجام دهد.2. معماری کامپیوتر: بعد از یادگیری نحوه ارتباط با کامپیوتر و چگونگی صحبت با اون، باید یک مدل ذهنی از ساختار و نحوه کارکرد کامپیوتر برای خودمون بسازیم تا بفهمیم که کامپیوتر چگونه کار می‌کند.	اگر این کار رو نکنیم تمام مفاهیم انتزاعی که در سطوح بالا تر بلدیم شکننده و کمی نا واضح میشوند.4. درک رفتار کامپیوتر: پس از ساخت مدل ذهنی، باید نحوه رفتار کامپیوتر را به صورت رویه‌ای درک کنیم. در این مرحله نیاز به ریاضیات پایه، کمی از گسسته و جبری که تا به امروز خوانده‌ایم داریم. (برای این موضوع سعی داریم که مسائل رو به کمک برنامه نویسی و دنیای کامپیوتر یاد بگیریم.)5. الگوریتم و دیتا استراکچر: در این مرحله، یاد می‌گیریم که چگونه پردازش‌ها به پایان می‌رسند و چطور می‌توانیم سریع‌تر و بهتر کارها را پیش ببریم و استریم دیتا را کنترل کنیم    (داستان از این قراره که الگوریتم ها و دیتا استراکچر ها سنگ بنای دنیای کامپیوتر به شدت بدرد بخور و تعیین کننده در حتی فروش و استفاده از یک برنامه هستند.)6. سیستم عامل: حالا که رفتار، ساختار و نحوه ارتباط با کامپیوتر را یاد گرفته‌ایم، باید سیستم عامل را بشناسیم. سیستم عامل جایی است که کدهای ما نوشته و اجرا می‌شود و ارتباط ما با سخت‌افزار را مدیریت می‌کند .7. شبکه: شبکه‌ها در واقع گراف‌هایی هستند که گره‌های آن کامپیوترها هستند. باید نحوه ارتباط بین این سیستم‌ها را مطالعه کنیم و یاد بگیریم چگونه از طریق سیستم خود با سیستم‌های دیگر ارتباط برقرار کنیم داستان از این قراره که تا مرحله ی 5 ، ما تقریبا یک سیستم رو به طور کافی شناخته ایم. حالا وقتش هست که یاد بگیریم که چطوری میتونیم از یک سیستم استفاده کنیم تا به سیستم دیگری درخواست انجام کاری رو بدیم و از قدرت پردازش و فضا و منابع دیگر سیستم ها استفاده کنیم.8. دیتا بیس ها9. زبان‌های برنامه‌نویسی و کامپایلرها: در اینجا یاد می‌گیریم که زبان‌های برنامه‌نویسی چگونه نوشته می‌شوند و کامپایلرها چگونه کار می‌کنند. این دانش به ما کمک می‌کند زبان‌های جدید را راحت‌تر یاد بگیریم.10. سیستم‌های توزیع: در نهایت، باید با سیستم‌های توزیع آشنا شویم که امروزه کاربرد زیادی دارند و درک پایه‌ای از آن‌ها می‌تواند مفید باشد.11. توسعه فردی: پس از این مباحث، اعضا می‌توانند به مطالعه عمیق‌تر در هر زمینه‌ای که به دنیای کامپیوتر مربوط می‌شود بپردازند و ایده‌های خود را به عمل برسانند. (فاز دو cs12)فاز یک رو چگونه اجرا میکنیم ؟به طور کلی فاز یک یعنی یادگیری مباحث پایه ای رو قصد داریم به شکل زیر اجرا کنیم :به طور هفتگی نشست هایی رو برگزار میکنیم که در این نشست ها به یادگیری مباحث دست اول در رابطه با موضوعات فوق میپردازیم، از کتاب ها گرفته تا لکچر های دانشگاه های معتبر و حتی منابع دیگر در مورد موضوع مورد بحث.به صورت ماهانه یا هر دو ماه یک بار یک نشست بزرگتر رو برگزار میکنیم تا مباحث قبل که در نشست های هفتگی مطالعه کردیم رو در یک نشست به طور خلاصه بیان کنیم تا دوره ای بشه برای بچه ها و همینطور اگر سیاست غلطی رو در یادگیری به کار بردیم با هم دیگه درستش کنیم.هر سال یک رویداد بزرگ داریم که سعی میکنیم در اون رویداد به اتفاقاتی که در نشست های گذشته افتاد بپردازیم و ببینیم که تا اون روز  چه کار هایی کردیم ، و چه سیاست هایی رو باید جایگزین سیاست های قبلی کنیم و در نهایت به چه موفقیت هایی رسیدیم و چه شکست هایی داشتیم.از هر نشست ویدیو هایی تهیه میشه و با ادیت در یوتیوب و سایت های مشابه گذاشته میشه، ویدیو ها دارای کات خواهند بود. بعلاوه که فایل اسلایدی و گزارشی از خلاصه هر جلسه در شبکه های اجتماعی و وبلاگ انجمن گذاشته میشه.در وبلاگ انجمن بخش هایی وجود داره که به طور روزانه سعی میکنیم که اموزش های متن محور در رابطه با زبان c و bash و ... رو بگذاریم.اگر اینترنت یاری کنه ، به استریم و لایو پخش کردن هر رویداد و نشست ها هم میپردازیم (قول نمیدیم.)در هر نشستِ هفتگی یک تیمِ دو یا سه نفره وجود داره که وظیفه وریفای کردن و سنجیدن درستی مطالبی که ارائه دهنده میگه رو به عهده داره که اگر احیانا ارائه دهنده اشتباه بحثی رو بیان کرد باعث کج فهمی نشه.همینطور اگر سوالی در جلسه مطرح بشه که ارائه دهنده قادر به پاسخگویی نباشه تیم وریفایر با سرچ و جستجو سعی در پاسخ دادن به اون مطلب میکنه و اگر تیم وریفایر نتونست به اون سوال پاسخی بده.همگی با هم دست به کار میشیم تا یادش بگیریم.به ما بپیوندید :بیاید اینجا : کلیک</description>
                <category>Amber Eye</category>
                <author>Amber Eye</author>
                <pubDate>Wed, 26 Mar 2025 12:38:13 +0330</pubDate>
            </item>
                    <item>
                <title>🎙چرا پروژه ها را نیمه کاره رها میکنیم</title>
                <link>https://virgool.io/z1cast/%DA%86%D8%B1%D8%A7-%D9%BE%D8%B1%D9%88%DA%98%D9%87-%D9%87%D8%A7-%D8%B1%D8%A7-%D9%86%DB%8C%D9%85%D9%87-%DA%A9%D8%A7%D8%B1%D9%87-%D8%B1%D9%87%D8%A7-%D9%85%DB%8C%DA%A9%D9%86%DB%8C%D9%85-jwqtujwra4vm</link>
                <description>چرا برنامه نویسان و دیگر افراد پروژه های خود را نیمه کاره رها میکنند
 https://castbox.fm/app/castbox/player/id6332909/id748525759?v=8.22.11&amp;autoplay=0 در این قسمت ما از اصول طراحی و برنامه ریزی پروژه ها میگیم و اهمال کاری و کامل گرایی رو بررسی میکنیمدر قسمت بعدی، در رابطه با موتورهای جستجوی چهره خطرناک صحبت میکنیم که حریم شخصی شما رو به شدت تحت تاثیر قرار میدن!گویندگان و متن : فرهان و شایانگرافیست : مهیبتدوین : فرهان</description>
                <category>Amber Eye</category>
                <author>Amber Eye</author>
                <pubDate>Tue, 29 Oct 2024 03:31:25 +0330</pubDate>
            </item>
                    <item>
                <title>بی تو مهتاب شبی..</title>
                <link>https://virgool.io/@farx/%D8%A8%DB%8C-%D8%AA%D9%88-%D9%85%D9%87%D8%AA%D8%A7%D8%A8-%D8%B4%D8%A8%DB%8C-wve71qyjvihz</link>
                <description>بی تو ...بی‌‌تو مهتاب‌ شبی، باز از آن کوچه گذشتمهمه تن چشم شدم، خیره به دنبال تو گشتمشوق دیدار تو لبریز شد از جام وجودمشدم آن عاشق دیوانه که بودمدر نهانخانه‌ی جانم، گل یاد تو درخشیدباغ صد خاطره خندیدعطر صد خاطره پیچیدیادم آمد که شبی با هم از آن کوچه گذشتیمپر گشودیم و در آن خلوت دل‌خواسته گشتیمساعتی بر لب آن جوی نشستیمتو ...این شعر اولین شعری بود که من در بچگی حفظ کردم آن هم به خاطر آقا دایی، آن موقع ها به دایی میگفتیم آدِی ، کم کم با کلاس شدیم و دایی جای آن آدِی را گرفت. آدِی خودش هم شاعر بود و هست. البته این روز ها دغدغه های دیگری دارد و فکر نمیکنم دوست داشته باشد شعری از شعرهایش را اینجا بدون اجازه بگذارم. ولی آدِی چه کردی؟ این همه قشنگی و غم در اولین شعری که باید به من می آموختی؟ ... به هر حال قدردان این مهرم!</description>
                <category>Amber Eye</category>
                <author>Amber Eye</author>
                <pubDate>Fri, 25 Oct 2024 01:13:29 +0330</pubDate>
            </item>
                    <item>
                <title>چرا برنامه نویس ها و دیگر افراد پروژه ها و برنامه های خودشون رو نصفه و نیمه رها میکنند؟</title>
                <link>https://virgool.io/codenevis/%DA%86%D8%B1%D8%A7-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3-%D9%87%D8%A7-%D9%88-%D8%AF%DB%8C%DA%AF%D8%B1-%D8%A7%D9%81%D8%B1%D8%A7%D8%AF-%D9%BE%D8%B1%D9%88%DA%98%D9%87-%D9%87%D8%A7-%D9%88-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%D8%AE%D9%88%D8%AF%D8%B4%D9%88%D9%86-%D8%B1%D9%88-%D9%86%D8%B5%D9%81%D9%87-%D9%88-%D9%86%DB%8C%D9%85%D9%87-%D8%B1%D9%87%D8%A7-%D9%85%DB%8C%DA%A9%D9%86%D9%86%D8%AF-tyvqifsikzot</link>
                <description>تا ساعاتی دیگر در چنل تلگرام، لینک در آخر همین پست! z1cast@سلام و درود، به پادکست z1 خوش اومدید ، z1 نام کامپیوتری در جنگ جهانی دوم بود که یکی از ویژگی های جذابش این بود که به راحتی میشد برنامه نویسیش کرد. پادکست z1 رو من و شایان باهم ساختیم تا در مورد اتفاقات جذاب دنیای کامپیوتر و... علم صحبت کنیم. z1 از ادم های عادی با پوزیشن های عادی  و حتی begginer ها و تازه کار ها هم دعوت میکنه تا بخشی از پادکست ما باشن اگر تهران هستید حضوری و اگر در شهر یا کشور دیگه ای هستید به صورت video call. ما قصد داریم که با افراد خاصی در پوزیشن های کاری متفاوت از tester ها تا project manger ها و ... صحبت کنیم و راه رو برای افرادی که میخوان وارد شرکت های بزرگ بشن باز کنیم ، شاید یکی کامپیوتر خونده باشه ولی دلش نخواد برنامه نویسی کنه، کجا باید کار کنه؟ و اصلا چیکارا میتونه بکنه!اما قبل از این که مصاحبه ها رو شروع کنیم، تصمیم گرفتیم که چندین اپیزود در رابطه با مشکلاتی که ما به عنوان یک فرد عادی و البته دوستدار کامپیوتر بهش بر میخوریم رو بررسی کنیم.موضوع قسمت اول اینه که چرا برنامه نویسان و افراد دیگه برنامه ها و پروژه های خودشون رو نیمه کاره رها میکنند؟این ویسی که بالا گوش دادید : دموی قسمت اول هستش ، اگر دوست داشتید میتونید به خانواده ی z1 در تلگرام بپیوندید و اصل اپیزود رو گوش بدید. (z1cast@)</description>
                <category>Amber Eye</category>
                <author>Amber Eye</author>
                <pubDate>Thu, 17 Oct 2024 17:03:29 +0330</pubDate>
            </item>
                    <item>
                <title>ویدیوی یوتیوبی که یوتیوب نشد،یا در مقابل یا ؟ XOR VS OR</title>
                <link>https://virgool.io/@farx/%DB%8C%D8%A7-%D8%AF%D8%B1-%D9%85%D9%82%D8%A7%D8%A8%D9%84-%DB%8C%D8%A7-xor-vs-or-kft9o1qzfodl</link>
                <description>کاور /:سلام این قرار بود یه ویدیو یوتیوب باشه که فعلا  متاسفانه به دلیل اینترنت زاغارت نشد که ویدیو رو توی یوتیوب آپلود کنم و از اونجایی که حجم ویدیو برای تلگرام و البته دانلود اینجا بالاست تصمیم گرفتم که به نوعی زیر قولم نزنم و اینجا حداقل ویس ویدیو رو بزارم.در این قسمت در مورد xor و or حرف میزنم. حیف با انیمیشنی که براش ساخته بودم جذاب تر میبود.اما ممنون میشم که نظرتون رو بشنوم در مورد کیفیت صدا، موزیک و ... و البته کاور من تو چنل تلگرامم خیلی فعالم میخواستید عضو شید کلیکاسکریپت (متن صدا) :توجه : اول این که اسکریپت رو بدون ویس نخونید، چون این ویس روی ویدیو بوده یعنی با انیمیشنی که روش هست خیلی قابل فهم تر میشه. پس اسکریپت به تنهایی درصد فهمیدنش رو پایین تر هم میاره. فرض کنید در یک روز تابستونی گرم. مثل همین حالا. شما  در اتاقتون هستید، و هوس یه نوشیدنی سرد و خنک میکنید. به کافه ی محلتون میرید. و گارسون رو صدا میزنید، گارسون فهرست نوشیدنی ها رو براتون میاره، اما صبر کنید، در فهرستی که گارسون به شما داده، و در بخش نوشیدنی های خنک، فقط 2 نوشیدنی وجود داره، که موجودی هر کدوم از اونا فقط یه دونست از طرفی زمان آماده شدن هر نوشیدنی 10 دقیقه است و کافه تا 15 دقیقه دیگه بسته میشه. در این شرایط شما فقط دو انتخاب دارید، نوشیدنی شماره 1 رو انتخاب می‌کنید یا شماره 2.در داستانی که براتون تعریف کردم، از کلمه **یا** برای لیست کردن انتخاب هایی که داریم استفاده کردم. در این حالت از بین دو گزینه فقط میتوانستیم یکی را انتخاب کنیم و نه هردو رو.حال فرض کنید، که کافه ی داستان ما دستگاهی رو خریداری کرده که زمان آماده شدن نوشیدنی ها رو به 5 دقیقه کاهش میده. حالا انتخاب های شما کمی متفاوت تر خواهد شد، در این حالت؛ نوشیدنی شماره 1 یا شماره 2 یا هردو انتخاب میکنید.در هر دو شرایط شما به مراد دلتون یعنی نوشیدن یه نوشیدنی خنک میرسید، اما اگر دقت کنید، در هر دو شرایط برای لیست کردن انتخاب های شما از کلمۀ یا استفاده کردم. چیزی که مطمئنم تا الان فهمیدید اینه که کلمۀ یا میتونه دوتا معنای متفاوت داشته باشه، 1. یا از بین دو گزینه یکی رو انتخاب میکنیم و به مراد دلمون میرسیم و توانایی انتخاب هر دو رو نداریم.2. یا میتونیم هر دو رو هم انتخاب کنیم. در زبان انگلیسی برای هر کدوم از این یا ها یه اسم خاص گذاشتن به اولی میگن exclusive or و به دومی inclusive or.در برنامه نویسی و در هنگام شرط نویسی، و استفاده از if و switch و اینجور چیزا، خیلی وقتا نیازه که از or که یه عملگر (operator) منطقی هست استفاده کنیم. خب or ی که معمولا استفاده میکنیم شرایط فرض دوم رو برای ما به وجود میاره. یعنی هر کدوم از گزینه ها که ما رو به مراد دلمون برسونه و به عبارتی true بشه حله حالا اگر هر دو هم true بشه باز همه چیز خوب و خفن میره جلو.اما اگر بخوایم از exclusive or یا همون فرض و داستان اول استفاده کنیم چی؟ اگر بخوایم شرطی رو بزاریم که فقط یکی از گزینه ها انتخاب بشه و هر دو نباشن چی؟ در این حالت از یه or دیگه باید استفاده کنیم درسته؟ شاید هم باید از عملگر منطقی AND استفاده کنیم؟خب بزارید با یه انیمیشن ساده دلیل استفاده نکردن از AND رو بهتون نمایش بدم، فرض کنید یه جعبه داریم، توی این جعبه یه توپ آبی و یه توپ قرمز وجود داره، حال فرض کنید که دوتوپ با یه زنجیر به هم متصل شدن به طوری که اگر یکی از اون ها رو بیرون بکشید دیگری هم بیرون میاد.  آیا در این حالت بدون شکستن زنجیر میتونید فقط یکی از این توپ ها رو از جعبه در بیارید؟ جواب واضحه خیر. اما ما میخوایم که توانایی بیرون اوردن یکی از این توپ ها رو به تنهایی داشته باشیم.بیاید برگردیم سر همون بحث OR ، در اینجا OR ی میخوایم که شرایط داستان اول رو برامون به وجود بیاره تا بتونیم یکی از گزینه ها رو انتخاب کنیم و اما هر دو رو نه. در ریاضیات گسسته به این or میگیم XOR یا همون زور. **فکر میکنم دلیل اون X اول OR رو گرفته باشید. برام توی کامنتا بنویسیدش.**</description>
                <category>Amber Eye</category>
                <author>Amber Eye</author>
                <pubDate>Mon, 02 Sep 2024 23:28:29 +0330</pubDate>
            </item>
                    <item>
                <title>تجربه من از برنامه نویسی روز 4 ام ، فلسفه ای بسیار کارآمد در زندگی.</title>
                <link>https://virgool.io/codenevis/%D8%AA%D8%B1%D8%AC%D9%85%D9%87-%D9%85%D9%86-%D8%A7%D8%B2-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%B1%D9%88%D8%B2-4-%D8%A7%D9%85-%D9%81%D9%84%D8%B3%D9%81%D9%87-%D8%A7%DB%8C-%D8%A8%D8%B3%DB%8C%D8%A7%D8%B1-%DA%A9%D8%A7%D8%B1%D8%A2%D9%85%D8%AF-%D8%AF%D8%B1-%D8%B2%D9%86%D8%AF%DA%AF%DB%8C-g6ae23ztgcvi</link>
                <description>توجه توجه : این مطلب رو حتما با ویس روی مقاله بخونید و گوش بدید تا به درک بهتری از موضوع برسید ممنون. مقدمهدرود اینجا جی بی گیکه و من فَرِهان هستم، سلام حالتون چطوره ؟یک فلسفه جالبی رو برنامه نویسی بهم یاد داده ، این که من به هیچ وجه نمیتونم در رابطه با یک چیز یا حالا یک سری چیز ها به طور 100 درصد مطمئن باشم. اتفاقی که افتاد از تجربیات خودِ منه ، من فصل 4 رو تموم کردم و به فصل 5 کتاب programming principles and practice using c plus plus  رسیدم قبلا در سری پست های تجربه من از برنامه نویسی (1و2و3) گفتم که این کتاب در رابطه با c plus plus نیست بلکه در رابطه با برنامه نویسی هست که به طور کلی با آموزش c plus plus به صورت یک ابزار و tool هم همراهه. توی این قسمت از تجربه ام باز میخوام در رابطه با یک تمرینی که در آخر فصل 5 یعنی فصل errors انجام دادم صحبت کنم. این فصل در رابطه با خطا ها، نحوه دیباگ کردن و فلسفه نوشتن برنامه و خط خطی کردن کاغذ قبل از نوشتن برنامه یا به قول کتاب estimate کردن و البته فرق دیباگ با تست و مباحثی از قبیل استفاده از pre-condition و post-condition و اینجور چیزا هست که توی مقاله بعدی در رابطه با هرکدومشون مینویسم و توضیح میدم فقط الان خلاصه بگم که فصل فوق العاده ایه.اما بزارید بریم سر اصل مطلب.بالا گفتم که این تمرین به من یاد داده که نمیتونم به طور 100 درصد در رابطه با چیزی مطمئن باشم البته باید بهتون بگم که این قضیه در دنیای واقعی صدق میکنه شما میتونید در داستان ها و البته در مباحث ریاضیاتی محض تا حدود بسیار زیادی در رابطه با هر چیزی که دوست دارید مطمئن باشید.اما چرا میگم دنیای واقعی؟ اصلا تمرین در مورد چی بود؟تمرین کتاب خیلی ساده بود، میگفت من یه کد دارم به شکل زیر ://CALLEE START
int area(int width, int hight) {
       // pre-condition -&gt; width and hight must be greater than 0, that is, positive
       // post-condition -&gt; the result must be greater than 0, that is, positive

      /*___pre-condition___ */
      if(width &lt; 0 || hight &lt; 0) error(&amp;quothight or width may be less or equal to zero. wdf?&amp;quot);

       int result = width * hight;
      /*___post-condition___*/
      if(result &lt; 0) error(&amp;quotarea is 0 or less, wtf?&amp;quot);
       return result; 
}

//CALEE END

int main() {
       int h;
       int w;
       cout &lt;&lt; &amp;quotINSERT WIDTH AND HIGHT OF YOUR DESIRED RECTANGLE\n&quot;
       while(cin &gt;&gt; w &gt;&gt; h) { // press ctrl + z to terminate the loop.
              cout &lt;&lt; area(w,h) &lt;&lt; &#039;\n&#039;;
              cout &lt;&lt; &amp;quotdo it again\n&amp;quot
       }

       return 0;
}کل کد بالا داره چی میگه؟ میگه آقا من یه تابع دارم به اسم area که قراره دوتا مقدار ورودی بگیره یکی عرض {width} یکی ارتفاع (یا همون طول) {hight} حالا در نهایت این دوتا رو ضرب در هم میکنه و در بخشی از حافظه که اسمش result هست ذخیره اش میکنه و در نهایت این مقداری که داخل result هست جواب ماست.بعد توی main اومده یه لوپ ساخته که هی شما بتونید عرض و ارتفاع بدید و به عبارتی دیگه هربار نیاز نباشه که برنامه رو ران کنید. چیز خیلی مهمی که توی این برنامه وجود داره دوتا عبارت pre-condition و post-condition هست این رو بهتون بگم که توی مقاله ها و کتاب های آکادمیک به فانکشن و کل بدنه ی فانکشن میگن callee اگر به  callee توی کد بالا نگاه کنید میبینید که پری کاندیشن و پست کاندیشن مشخص شده. در واقع pre-condition شرط یا شرط هایی هست که میاد و نگاه میکنه ببینه که ورودی هایی که میدیم به یه فانکشن اوکی هستند یا نه ؟ یعنی مثلا برای این مثال چون ما قراره مساحت حساب کنیم پس نمیتونه عرض یا ارتفاع ما صفر یا حالا عدد منفی باشه چرا؟ چون اگر شما یه شکل داشته باشید که عرضش 0 هست آیا میتونید بهش بگید مستطیل؟ یا این که آیا طول منفی وجود داره؟ مثلا میتونید بگید قد یکی -183 هست؟ به همین دو دلیلی که بهتون با استفهام انکاری گفتم باید بگم که پس طبیعیه که شرطی بزاریم که عرض و ارتفاع هر دو از صفر بزرگتر باشن اینجوری دیگه نه صفر میشن و نه منفی. به این قضیه میگن pre-condition یعنی شرطی که قبل از این که فانکشن بخواد از ورودی هاش استفاده کنه مینویسیم. حالا بعد از این  یه post-condition هم داریم این شرطی هست که میاد نتیجه نهایی تابع یا فانکشن ما رو بررسی میکنه. نتیجه ای که توی مثال ما مقدار مساحت مستطیل هست.  مقدار مساحت هم نمیتونه صفر یا منفی باشه. پس باید همیشه مثبت باشه. اتفاقی که میوفته اینه که ما یه همچین شرطی رو هم مینویسیم.اما صبر کنید. آیا نیازه؟ که همچین شرطی بنویسیم؟ما از ریاضیات میدونیم که اگر مستطیلی به عرض w و طول h داشته باشیم پس مساحت اون  h ‍‍‍‍× w میشه . حالا با فرض این که h و w بزرگتر از صفر هستند پس رسما هیچ وقت مقدار مساحت ما صفر یا منفی نمیشه. با این تفاسیر دیگه نیازی به post-condition نیست بلکه کافیه که همون pre-condition رو به کار بگیریم درسته ؟ چون ما مطمئنننیم که قرار نیست مساحت ما صفر یا منفی بشه. چون عرض و ارتفاع ما صفر یا منفی نیست.و این دقیقا همونجایی هست که میتونم بگم فلسفه ای که بالا گفتم شکل میگیره و شما نمیتونید هیچوقت در رابطه با چیزی در دنیای واقعی مطمئن باشید. چرا؟ چون اینجا  قرار نیست که روی کاغذ خط خطی کنید و بگید که ریاضی به طور کامل حکمفرماست اینجا قوانین ترمودینامیک و البته فیزیک هم حکمفرمایی میکنه به عبارتی اینجا هر سیستمی محدودیتی در خودش داره. که این محدودیت میتونه باعث ایجاد یک خطا حتی در چیزی به اسم  ریاضیات که کاملا لاجیکال و منطقی هست بشه.در c plus plus اگر دو عدد بسیار بزرگ رو در هم ضرب کنید در نهایت عدد منفی رو پس میگیرید (عکس بالا). پس اگر کسی احیانن یک مستطیل بسیار بزرگ رو در نظر داشته باشه و بخواهد که مساحتش رو با برنامه شما در نظر بگیره . ممکنه که برنامه شما همچین خطایی رو بده پس بهتره بگم که یه چیزی این وسط اشتباهه و بهتره که از post-condition استفاده کنیم تا مخاطب ما گیر نکنه و فکر نکنه که برنامه مشکلی داره. و از طرفی بتونیم این خطا رو هم مدیریت کنیم. نتیجه :اگر شما در این مثال احیانن صرفا به ریاضیات دلخوش میکردید و کاملا مطمئن میشدید که مساحتتون هیچوقت به خاطر pre-condition منفی یا صفر نمیشه. حتما لذت مدیریت کردن این خطا رو از دست میدادید پس باز هم میگم در دنیایی که فیزیک حکمفرماست و خستگی و محدودیت بخشی از حیات (زندگی) هر موجود زنده و شبه زنده هست. بهتره که فکر مطمئن بودن 100 درصد رو از ذهنمون بیرون کنیم و تا جایی که میتونیم در بحث error handling به این فکر باشیم که کار از محکم کاری عیب نمیکنه.من فَرِهان  بودم مرسی که من رو شنیدید، و خوندید، دمتون گرم ، میتونید من رو شبکه های اجتماعی با آدرس و آیدیه @atfarhanwd پیدا کنید. چه در تلگرام و چه در اینستاگرام و حتی در یوتیوب و توییتر (ایکس :( )در نهایت تا درودی دیگر بدرود فعلا.توجه جی بی گیک (GBGEEK) یه پادکست در زمینه تکنولوژی و جامعه هست، چرا اسمش اینه؟ خب به این خاطر که به پادکست ربط داره کلا پادکست رو میتونی بزاری توی جیبت و بهش گوش بدی.ایمیل من اگر حرفی داشتید که نمیخواستید اینجا بگید : atfarhanwd@gmail.com</description>
                <category>Amber Eye</category>
                <author>Amber Eye</author>
                <pubDate>Mon, 01 Jul 2024 22:32:29 +0330</pubDate>
            </item>
                    <item>
                <title>چطور حق ترجمه کتاب رو بگیریم؟ تجربه من (لینوکسی ها)</title>
                <link>https://virgool.io/@farx/%DA%86%D8%B7%D9%88%D8%B1-%D8%AD%D9%82-%D8%AA%D8%B1%D8%AC%D9%85%D9%87-%DA%A9%D8%AA%D8%A7%D8%A8-%D8%B1%D9%88-%D8%A8%DA%AF%DB%8C%D8%B1%DB%8C%D9%85-%D8%AA%D8%AC%D8%B1%D8%A8%D9%87-%D9%85%D9%86-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3%DB%8C-%D9%87%D8%A7-a3af4opl8oaq</link>
                <description>درود خوب هستید؟ حتما از باقی پست هام متوجه شدید که من تجربیاتم رو اینجا مینویسم و به شکل یه پادکست درشون میارم تا اگر چیزی برای یادگیری هست با هم یاد بگیریم. :)مدتی هست که در فکر این بودم که کتابی رو کامل ترجمه کنم، یه کتاب در زمینه CLI یا Command Line Interface (محیط خط فرمان) و حقیقتا دیگه تصمیمم رو گرفته بودم ولی خب میخواستم که اجازه و حق ترجمه کتاب رو بگیرم.به همین خاطر وارد وادی این کار شدم، توی این پست از کارایی که باید هنگام ترجمه کتاب انجام بدید بهتون میگم  و چند تا انتشاراتم که باهاشون حرف زدم بهتون معرفی میکنم «کلا دوتا بیشتر نیست :) ».مرحله اول : چی دوست داری؟توی این مرحله، کاری که نیاز هست اینه که اول از همه یه کتاب انتخاب کنید، لطفا سر جدتون قبل از تصمیم به ترجمه کتاب، کتاب رو بخونید، حداقل بخشی که میخواید ترجمه کنید رو بخونید و درک کنید و بفهمید.برای پیدا کردن کتاب میتونید به چند تا سایت رجوع کنید ولی خب من اینجا زیاد درگیر پیشنهاد کردن سایت بهتون نمیشم چون بهتره که سرچ آزاد بزنید. مثلا برای کتاب the overcoat بهترین راه سرچ آزاده چون خیلی قدیمیه. یا کتاب coco chanel و...ولی خب توی چند تا سایت میتونید اسم کتابا رو ببینید و در موردشون ریویو بخونید و خلاصه انتخاب کنید که کدوم رو میخونید و بعد تصمیم به ترجمه میگیرید.این سایتا میتونن اینا باشن :amazon.com goodreads.comisbnsearch.org  این سایت (مورد سوم) بیشتر به درد سرچ دقیق میخوره وقتی که میدونید کتاب چیه و شابک یا همون ISBN رو دارید.مرحله دوم : دانلود و دریافت کتابخب بعد از پیدا کردن کتاب و خوندن فید بک های کتاب و دیدن عکس و چند تا صفحه و عاشق کتاب شدن. بهتره که بریم تا کتاب رو گیر بیاریم پس توی این مرحله دنبال چند تا سایت رایگان میگردیم تا بتونیم کتاب رو تهیه کنیم.من اصولا با دوتا سایت تقریبا کارم همیشه حل شده و سایتای بیشتری رو نمیشناسم ولی خب یه روش هم میگم که بتونید بیشتر بگردید و پیدا کنید.سایت https://freecomputerbooks.com  برای کتاب های کامپیوتر و حوزه نرم افزار و خلاصه تکنولوژی و اینا عالیه تقریبا همه چیزم داره استفاده ازشم راحته نیازی به لاگین و اینجور چیزا نداره.سایت https://vdoc.pub  برای تقریبا هر کتابی خوبه، بعضی کتابا رو PDF نداره و EPUB یا نسخه های دیگشون رو داره جلو تر در مورد این سایت یه موردی رو بهتون میگم.درست سرچ کنید پیدا میشه از چند روش سرچ میتونید استفاده کنید :[The Book&#x27;s Title] {PDF, EPUB}حالا یعنی چی؟ یعنی جای [The Book&#x27;s Title] اسم کتاب رو مینویسی ترجیحا به انگلیسی یا حالا هر زبانی که میخوای و سپس یه فاصله میدی و یکی از فرمت ها رو مینویسی : pdf یا epub گه گداری doc اگر چیزی پیدا نکردی میتونی جای pdf یا epub یا doc بنویسی : site : drive.google.comاینجوری اگر کسی توی درایوش کتاب رو داشته باشه و دسترسی ازاد داده باشه میتونی پیداش کنی. خلاصه اگر از کوئری های سرچ استفاده کنید به احتمال خیلی زیاد پیداش میکنید.مثال گوگل درایو.البته توصیه میکنم که اول کارای بالا رو بکنید اگر پیدا نکردید از کوئری ها استفاده کنید.اما گفتم در مورد گزینه دوم که سایت vdoc.pub بود براتون یه نکته بگم :اونم این که وقتی یه کتاب سرچ میکنید چندین تا شاید بعضا بیش از صد تا از همون یه نسخه بهتون نمایش بده این به این خاطره که افراد زیادی توش کتاب اپلود میکنن و موضوع بعد این که بعضی از این نسخه ها pdf هستند و بعضیاشون epub هستن. میبینید کلی کتاب مشابه هست نسخشونم جلوشون نوشته.وقتی روی هر کتاب کلیک میکنید و وارد صفحه دانلود میشید حواستون باشه که کتاب رو با زدن روی گزینه  Download Original دان کنید خلاصه اون دکمه ای رو بزنید که original داره بعدش که دان کردید از یه سایت converter ساده میتونید نسخه ای که دریافت کردید رو مثلا به پی دی اف یا ای پاب تبدیل کنید.اینی که original داره رو بزنید هر چی هم بود باز همین رو بزنید و بعد اگر دوست داشتید تبدیل کنید.مرحله سوم : چک کنیم ببینیم ترجمه شده یا نه؟ البته اگر برات مهمه!این مرحله به نظرم اختیاری هست اگر براتون مهمه به سایت کتابخانه ملی برید و اونجا اسم کتاب رو به انگلیسی بزنید و ببینید که قبلا ترجمه و چاپ شده یا نه ؟ و این که کی ترجمه کرده و اینا. برای کسایی خوبه که میخوان ببینن کسی قبل اینا کتاب رو ترجمه نکرده باشه . سایت کتابخانه ملی : nlai.irمرحله چهارم و اصل این پست :بعد از این که کتاب رو پیدا کردید، دان کردید و اول خوندید میتونید تصمیم بگیرید که میخواید ترجمش کنید یا نه.خب برای ترجمه شما میتونید بدون دریافت حق ترجمه کتابتون رو چاپ کنید که برای این کار میرید و مثلا با انتشارات پژوهش برتر همکاری میکنید. بهشون میگید که کتابتون چیه و بعد میتونید برای نشر و چاپ کتابتون باهاشون همکاری کنید.اما اگر خودتون دوست دارید که حق ترجمه و نشر رو بگیرید و دوست دارید که حرفه ای عمل کنید میتونید مثل من ایمیل بزنید. برای ایمیل زدن باید اول ایمیل نویسنده یا ناشر رو پیدا کنید.این رو میتونید توی صفحال اول اصولا قبل از فهرست کتاب پیدا کنید یا اگر اونجا نبود توی صفحات آخر کتاب میتونید پیداش کنید. گاهی هم بعد از فهرست کتاب، بخشی به عنوان  note to translators برای همچین چیزایی وجود داره که میتونید از اطلاعاتی که توی اون بخش بهتون میده استفاده کنید. حالا کی باید به نویسنده ایمیل بزنید کی به ناشر؟ توی همون بخشی که بالا گفتم میتونید اطلاعات این قضیه رو پیدا کنید مثلا من به ناشر ایمیل زدم چرا؟ به این خاطر که توی کتاب خود نویسنده گفته بود به ناشر ایمیل بزنم : خب حالا که ایمیل رو میدونم و صد در سگ مطمعنم که میخوام ترجمش کنم. برم که ایمیل رو بزنم ساختار ایمیل بهتره یه ساختار خیلی ساده باشه، زیاد نپیچونیدش، سعی نکنید بگید وای من عاشق فلانم عاشق بسانم اینجوریم اونجوریم چون کسی وقت خوندن اینجور چیزا رو نداره خیلی سریع بگید چی میخواید😊 مثلا من یک سال پیش یه کورس از زبان c و cpp رو کاملا رایگان از کورسرا با aid دریافت کردم . و خیلی ساده و سریع اصل مطلب رو گفته بودم.اینم ایمیل کورسرا.پس اصل مطلب رو سریع بگید ؛ خب اولین مرحله نوشتن موضوع ایمیل یا همون subject هست، اینجوری بنویسید :Getting the Rights to Translate [Book&#x27;s Title]دقیقا همین رو بنویسید فقط قسمت [book&#x27;s title] رو اسم کتاب رو بزارید.بعدش شروع به نوشتن ایمیلتون کنید توی خط اول بنویسید :Dear [Author&#x27;s Name]جای [Author&#x27;s Name] اسم نویسنده رو بنویسیدتوی خط بعدی اول از همه خودتون رو معرفی کنید اسم + فامیل + سن و بعد خیلی کوچولو و سریع بگید که کی هستید مثلا من تو ایمیلم اینو نوشتم :My name is Farrehan Ebrahimzadeh, and I am a 18-year-old Linux enthusiast.من با همین کلمه Linux enthusiast کل ماجرا رو گفتم و بیشتر توضیح ندادم. همینطور که میبینید اسمم و سنم و یه توضیح کوچیک از این که کی هستم سعی کنید توضیحتون مرتبط به موضوع کتاب باشه اگر رمان هست بگید book worm یا  book rat هستید.فقط یه نکته : اون موقع که ایمیل میزدم نمیدونستم ولی سعی کنید کمترین سنی که میزنید حداقل 20 باشه حتی اگر 18 سالتونه هم بگید 20 هستید.از اینجا به بعد دقیقا همینی که من نوشتم رو بزارید :I am writing to ask for your permission to translate your book, &quot; [Book&#x27;s Title] &quot; from English to Persian.Since my country, Iran, is not a signatory of the Berne Convention, I am contacting you directly to ask for your approval for the translation.If you agree, please indicate your approval by signing this letter. Also, if you have any conditions, provisos, or terms, please let me know.Thank you for considering my request.Sincerely,[Your Name]فقط حواستون باشه حتما بگید از چه زبانی به چه زبانی توی این ساختاری که براتون نوشتم گفتم بعد از اسم کتاب from english to persian . اینو اگر مثلا از فرانسوی به فارسی بود تغییر بدید.بزارید حالا دقیقا عکسی که خودم ایمیل زدم رو براتون بزارم ببینید :میبینید که فرقی نداره دقیقا همین رو دادمفقط جواب که دادن (همون تیکه که قرمز کردم) اگر گفتن راه افلیتت چیه، با شرکت یا ناشری همکاری میکنی و اینا ، همین ایمیل رو عکس بگیر و برای ناشر ها توی اینترنت بفرست بلاخره یکیش قبول میکنه که چاپ کنه.مثلا برای انتشاارات علوم رایانه اگر کتابتون تخصصی هست و در مورد کامپیوتر هست میتونید بفرستید من همین کار رو کردم. برای همون انتشارات برتر هم میتونید بفرستید تا بهتون بگن که چی بنویسید.دیگه در نهایتم که میرید سر وقت ترجمه و کار رو جلو میبیرید، توی این راه دلسرد نشید، گاهی میگن نه فارسی نه که واقعا سخته اذیت میشید ولی پیله باشید ول نکنید شده 10 بار به یه شرکت ایمیل بزنید و هر بار همین رو بگیداینقدر بگید که از خر شیطون بیان پایین و بزارن ترجمش کنید. تو زندگی فقط یکبار امتحان نکنید و سعی کنید برای هر چیزی پیله باشید.خب فَرِهان بودم خیلی ممنونم که به این پادکست، که مثل باقی مقالات از تجربیاتم بود گوش دادید و نگاه کردید امیدوارم که کارتون راه بیوفته و در نهایت بدردتون خورده باشه من کلا از تجربیاتم مینویسم میتونید من رو در اکثر شبکه های اجتماعی با آدرس : atfarhanwd@ پیدا کنید، مثلا :اینستاگرام : atfarhanwdتلگرام : atfarhanwd</description>
                <category>Amber Eye</category>
                <author>Amber Eye</author>
                <pubDate>Wed, 15 May 2024 20:08:34 +0330</pubDate>
            </item>
                    <item>
                <title>تجربه من از برنامه نویسی روز سوم!</title>
                <link>https://virgool.io/codenevis/%D8%AA%D8%AC%D8%B1%D8%A8%D9%87-%D9%85%D9%86-%D8%A7%D8%B2-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%B1%D9%88%D8%B2-%D8%B3%D9%88%D9%85-dvznrepuzwtg</link>
                <description>توجه این مقاله رو حتما باید با ویس بالا گوش بدید و بخونید تا درک کنید که در مورد چی حرف میزنم مرسی❤گلوم درد میکنه و از بابت این موضوع عذر میخوام. (متاسفانه هنوز خوب نشدم)اسم این پادکست رو گذاشتم GBGEEK اگر دوست داشتید حتما بزارید که بدونم که حستون نسبت به مقاله و چیزایی که گفته شد چی هست.هر چند که روز سوم نیست،قبلا توی مقاله ی تجربه من از برنامه نویسی روز دوم (اینجا) که به طور بی سابقه ای ازش حمایت کردید گفتم که مدتی هست که دارم سی پلاس پلاس یاد میگیرم و کتابی که در حال خوندنش هستم ppp هستش که مخفف programming : principles and practice using c plus plus هستش و گفتم اگر جایی دیدید که نوشتم cpp منظورم c plus plus هست.امروز توی این مقاله میخوام در مورد تجربه جالبی که حین تمرین به دستش آوردم بگم و کمی بیشتر با اصطلاحات زبان های برنامه نویسی هم آشنا بشیم. به زودی قول میدم که این 4 فصلی که از کتاب ppp خوندم رو براتون کاملا بنویسم و سعی کنم که جای ترجمه ی این کتاب رو خالی کنم. یه مقدمه کوچولو وقتی که شروع به یادگیری هر زبانی میکنیم، چه حالا زبان برنامه نویسی باشه و چه زبان طبیعی مثل فارسی و انگلیسی باید سعی کنیم در وهلۀ اول درک مناسبی از ساختار و کلمات تخصصی داشته باشیم؛ چرا؟چون در واقع کلمات تخصصی، کلمات کوچک شده ای هستند که به اختصار به کار میرن تا بتونیم بخشی مفهومی و عموما چند خطی از یک بحث رو درک کنیم، مثلا وقتی از آرگومان صحبت می‌کنیم در واقع داریم یک همچین مفهومی رو در بحث برنامه نویسی بیان میکنیم : تصویر ۱در عکس بالا شما دارید شماتیک یک برنامه رو میبنید که در حقیقت داره بیان میکنه که برنامه ها خود شامل برنامه های کوچولو تر هستند که هر فانکشن یا بلاک کد میاد بر اساس دیتایی که داره یه خروجی تولید میکنه و میشه این خروجی رو به عنوان ورودی داد به تابع بعدی تا اون تابع هم یه خروجی بر اساس ورودی درست کنه و همینطور ادامه پیدا کنه تا برسیم به نتیجه برنامه!در حقیقت معنی ارگومان ها و آرگومان لیست در برنامه هایی که real world تر هستند دقیقا اینه، میخواد این رو نشون بده که برنامه نویسی صرفا از صفر تا صد ساختن نیست، بلکه مدیریت و بخش بخش کردن کد ها هم هست. اصلا دلیلی که دیوید ویلر ساب روتین ها (که بعد ها در زبان های برنامه نویسی به function معروف شد) رو ساخت همین بود، این که بتونه بخش های محاسباتی پیچیده و ساده رو از هم جدا بکنه و به عبارتی حتی توی یه برنامه هم بتونه رویدادی جعبه جعبه داشته باشه که هر جعبه دنیای خودش رو داره و کار خودش رو میکنه و خروجیش میتونه به تنهایی استفاده بشه و یا این که در ساخت و تکامل جعبه های دیگه کمک کنه و در نهایت یه برنامه خفن ساخته بشه.حالا چرا کلمات تخصصی؟حالا چرا توی این مقدمه در مورد کلمات تخصصی گفتم؟ به این خاطر که امروز هم مثل قسمت قبل میخوام در مورد تجربه ام و البته درکم از تمرین جدیدی که داشتم بگم و در مورد یه موضوع جالب حرف بزنم.اما قبل از اون بیاید تا اول با کلمه statement آشنا بشیم.قبلا توی مقاله تجربه من از برنامه نویسی روز اول، در مورد تفکر الگوریتمی و مثال دستشویی رفتن توضیح دادم.اما بیاید به طور خلاصه یه سری به همون مقاله بزنیم، کل حرف اون مقاله این بود :برنامه نویسی یعنی صحبت با کامپیوتربرای صحبت با کامپیوتر باید از گرامر و زبان خاص خودش استفاده کنی که میشه زبان برنامه نویسی مثل cppبرای این که بخوای یه کامپیوتر کاری برات انجام بده باید با استفاده از زبان برنامه نویسی باهاش صحبت کنی و مو به مو و با جزئیات دقیق بگی که چیکار کنه (تفکر الگوریتمی). مثلا به آدمی که میپرسه دستشویی کجاست میگی ته راهرو دست راست ولی برای این که به یه کامپیوتر بفهمونی دستشویی کجاست، باید ته، راهرو، جهت راست و حتی راه رفتن و... رو هم توضیح بدی.حالا با همه این تفاسیر درسته که کامپیوتر با انسان در این قضیه فرق خیلی گنده ای داره، اما  در یک چیز اشتراک داره.بزارید این رو با یه مثال ساده براتون بگم : تصور کنید که به دوستتون میخواید بگید که بره و از یخچال هندونه رو بیاره. پس به احتمال زیاد اینجوری میگید که : مثلا :علیپاشو. (وقتی پا شدی بعدش)برو تو آشپزخونه.(وقتی رفتی بعدش)تو یخچال (یعنی در یخچال رو باز کن و وقتی باز کردی بعدششش)هندونه رو بردار. (وقتی برش داشتی بعدش)بیار.همونطور که میبینید نقطه یه جورایی نقش این رو بازی میکنه که انگار دارید میگید وقتی دستور قبلیتون تموم شد بره بعدی به عبارتی شما با هر جمله یه کاری رو میگید دوستتون انجام میده و بعد منتظر دستور بعدی میمونه.توی برنامه نویسی هم در واقع همینه ما داریم با صحبت با کامپیوتر اونم به کمک زبان مشترکمون که همون زبان برنامه نویسی هست دستوراتی رو بهش میدیم تا برامون انجام بده.طبیعیه که به هر کدوم از این دستورات بگیم یک جمله یا همون statement. دقیقا عین مثال قبل. اما  در زبان های برنامه نویسی این تموم شدنه و رفتن به سمت دستور بعدی. آنچنان هم ساده نیست. و کلی بحث بامزه داره ولی بیاید فعلا از اون بحث ها دور بمونیم و فقط در مورد یه علامت صحبت کنیم که هم تو cpp و هم توی js  و زبان های دیگه ازش استفاده میشه اون هم semi-colon یا نقطه-ویرگول ; هست.نقطه ویرگول دقیقا همون معنای نقطه توی مثال بالا رو میده. یعنی « تموم شد (برو بعدی) » این برو بعدی اختیاری هست ممکنه برنامه بره خط بعد و دیگه چیزی وجود نداشته باشه پس تمومه ولی ممکنه کد هایی در خطوط بعدی باشن که خب در این صورت این برو بعدی ادامه پیدا میکنه تا برنامه تموم بشه.حالا برای ادامه بحث و بیان تجربم به ناچار مجبورم یه مورد دیگه رو هم براتون باز کنم و اون هم بلاک هست! البته نه اون بلاکی که مزاحما رو باهاش میکنیم، منظورم یه مشت کد جمع و جور شده هست که با هم اجرا میشن. اصولا این تیکه از کد ها رو تو خیلی از زبون های برنامه نویسی بین این دوتا مینویسن { }  که بهشون میگیم curly- braces (کروشه خودمون).{
// code 
}حالا این curly-braces ها چیکار میکنن؟ این ها میان و چند تا جمله رو توی خودشون نگه میدارن تا با هم دیگه اجرا، ترجمه، تفسیر و ... بشن در واقع مثل این میمونه که شما توی برنامتون یه سری جعبه هایی داشته باشید که بتونید یهویی یه کار باحال رو با ترکیب چند جمله با هم انجام بدید. به این ساختار چند جمله ای میگن block که نام تخصصی ترش compound-statement یا جملات مرکب هم هست.حالا موضوعی که مهمه این وسط اینه که کروشه اول در حقیقت داره میگه که شروع کد یا شروع این compound-statement از کجاست به عبارتی اولین statement یا جمله ای که قراره شروع به اجرا شدن کنه کجاست. و آخرین کروشه هم داره جار میزنه که آقا این compound-statement ما تموم شدددددد . این تموم شدِ آخر؛ شما رو یاد یه چیزی نمیندازه؟ آفرین، همون جمله تموم شد برو بعدی خودمون نیست؟دقیقا همونه.خب حالا بحث چی بود؟ موقعی که داشتم تمرین میکردم از روی عادت بعد هر کدوم از این کروشه ها یه دونه semi-colon میگذاشتمبعدش با خودم فکر کردم که اصلا کار درستیه؟ که بزارم یا نزارم؟ خب فکر میکنم تا الان به جواب مسئله رسیده باشید.نیست. چرا؟ چون کروشه آخر داره میگه آقا جمله تموم شد. آیا به نظر شما درسته که با گذاشتن یه semicolon باز به کامپیوتر بگیم جمله تموم شد؟ به نظر من که نیست.باز نمیدونم این موضوع کجا در دنیای واقعی به کارمون میاد ولی همین که بدونیم که داریم با هر semi-colon یا کروشه چی میگیم و به عبارتی بفهمیم که چطور با کامپیوترمون حرف بزنیم به نظرم جذابه. و در نهایت این چیزی بوده که حین تمرین بهش رسیدم گفتم شاید باحال باشه و شما هم بخواید بدونید، من فَرِهان هستم و مرسی که این مطلب رو خوندید.من رو در شبکه های مجازی میتونید فالو کنید :اینستاگرام : atfarhanwdتلگرام : atfarhanwd</description>
                <category>Amber Eye</category>
                <author>Amber Eye</author>
                <pubDate>Sat, 11 May 2024 23:39:53 +0330</pubDate>
            </item>
                    <item>
                <title>تجربه من از برنامه نویسی روز دوم.</title>
                <link>https://virgool.io/codenevis/%D8%AA%D8%AC%D8%B1%D8%A8%D9%87-%D9%85%D9%86-%D8%A7%D8%B2-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%B1%D9%88%D8%B2-%D8%AF%D9%88%D9%85-bdteympjhzqw</link>
                <description>توجه این مقاله رو حتما باید با ویس بالا گوش بدید و بخونید تا درک کنید که در مورد چی حرف میزنم مرسی❤ گلوم درد میکنه و از بابت این موضوع عذر میخوام.اسم این پادکست رو گذاشتم GBGEEK اگر دوست داشتید حتما بزارید که بدونم که حستون نسبت به مقاله و چیزایی که گفته شد چی هست.:)هر چند که روز دوم نیست ، ولی آره.مدتی هست که دارم سی پلاس پلاس یاد میگیرم اگر توی این مقاله دیدید نوشتم cpp منظورم سی پلاس پلاسه و اگر نوشتم ppp اسم کتابی هست که دارم مطالعه اش میکنم. که مخفف : programming principles and practice using c plus plus هست که نویسندش، بیارنه استراوستروپ هستش. من چاپ دومش رو میخونم ولی خب سومیشم  هم دو سه هفته پیش اومد بیرون. ‌‏توی این مقاله میخوام براتون از یه چیز جذاب بگم.یه مقدمه کوچولو.خب من فصل سوم کتاب رو تموم کردم توی این فصل در مورد آبجکت ها ، تایپ سیفتی، و مباحث جالبد دیگه گفت  مثلا این که value چیه. این خیلی برام عجیب و جذاب بود که به این فکر کنم که value یا همون مقدار چیه؟ جواب کتاب به این سوال جذاب تر هم بود. به نظرتون حالا واقعا value چیه و چه تعریفی داره؟طبق گفته ی کتاب value یعنی مجموعه ای از بیت ها * که درون مموری با توجه به نوع و جنس اطلاعاتی که دارند تفسیر میشند. مثلا عدد 120 در مموری به صورت این بیت ها در میاد :integer : 120
binary :   00000000 00000000 00000000 01111000خب این یعنی چی؟ بزارید قبلش بایت و بیت رو براتون توضیح بدم که چی هستند ؟ به هر مجموعه 8 تایی از 0 ها و 1 ها میگن بایت. و به هرکدوم از این 0 ها و یا 1 ها میگن بیت. مثلا الان توی کد باینری بالا 4 تا بایت داریم و 32 بیت.این کد باینری اگر در مموری در بخشی از حافظه ذخیره بشه که فقط دیتایی عددی میپذیره به صورت عدد تفسیر میشه.و عدد 120 رو به ما میده ولی همین کد باینری اگر در بخشی از حافظه ذخیره بشه که دیتای کارکتر میپذیره به صورت کارکتر  یا حرف تفسیر میشه و حرف x رو به ما نشون میده . بعد از درک چنین موضوعاتی به بحث type safety رسیدم. این بحث هم به نظرم جالب بود و محتوای این پست  دقیقا از همین قسمت بود که پیدا شد. یه قضیه تاریخی و مفهومی جالب در دنیای کامپیوتر رو پیدا کردم. اما قبل از اون بیاید تا ازتون سوالی بپرسم.سوال اینه : وقتی که روی کیبوردمون دکمه enter رو میزنیم و خط جدیدی تعریف میشه، insertion point به پایین میره؟ یا صفحه به بالا؟ بزارید جور دیگه ای سوالم رو بپرسم حتما تا الان روی یک صفحه شروع به نوشتن کردید وقتی که داریم مینویسیم یک خط راست که چشمک میزنه وجود داره که به این خط راست به طور عمومی میگن text cursor یا the cursor ولی در اصل و علمیش insertion point هست حالا وقتی دکمه enter رو میزنیم این علامت میره پایین و ما میتونیم توی خط بعدی بنویسیم حالا سوال من اینه که آیا واقعا این علامت پایین میره یا صفحه بالا میره؟ یکم فکر کنید.... میتونید یک صفحه notepad رو باز کنید چندین بار دکمه enter رو بزنید و به این فکر کنید که آیا صفحه ی سفید حرکت میکنه یا insertion point شما؟خب حالا که فکر کردید، بزارید بریم سر اصل مطلب ...در واقع وقتی داشتم به بحث type safety رسیدگی میکردم تا مفهومش رو بیشتر درک کنم به یه رفتار عجیب برخوردم ، اونم هنگام تبدیل عدد 13 به کارکتر ASCII متناظرش ، هر کاری کردم بفهمم که این کارکتر دقیقا چیکار میکنه نتونستم ازش سر در بیارم پس توضیحات مربوط به این کارکتر رو سرچ کردم و مطالعه اش کردم.به این کارکتر که به صورت Regualr expression در بسیاری از زبان های برنامه نویسی هم استفاده میشه و به شکل r\ نوشته میشه میگن : Carriage Return یا به اختصار CR.این CR قصه ی ما به نوعی از خویشاوند های کارکتر Line Feed یا همون کارکتر New Line هستش که در Regular Expression به صورت n\ نوشته میشه. که به اختصار LF هم بهش میگن.حالا چرا خویشاوندش؟ چون به نوعی CR به حرکت دادن insertion point کمک میکنه . تا بتونیم به نوشتنمون در خطوط بعدی ادامه بدیم که حالا کمی جلو تر دقیقا بهتون میگم که چیکار میکنه.خب فرآیند تایپ کردن و استفاده از کیبورد و خلاصه اینجور چیز ها برمیگرده به ماشین های تایپ. در ماشین های تایپ قدیمی، وقتی که insertion point به آخر خط میرسیده . اگر به خط جدید میرفتید و شروع به نوشتن میکردید،،،، کلمه ای که مینوشتید در آخر خط جدیدی که رفته بودید نوشته میشده. چون که وقتی که به خط بعدی میرفتید، اینزرشن پوینتِ شما، ثابت میمونده و از همونجایی که بوده شروع به نوشتن میکرده؛ منتها فقط فرقش این بوده که توی خط جدید بودید.به عبارتی فکر کنید که دارید با یه خودکار روی یه کاغذ مینویسید، اگر وقتی که به آخر خط میرسید خودکار رو در همون نقطه نگه دارید و فقط کاغذ رو به سمت بالا هدایت کنید تا به خط بعدی برید. اینجوری میشه که وقتی از نو شروع به نوشتن میکنید.  کلمات شما از همون پوزیشنی که در خط قبل بودید نوشته میشه به این شکل :فکر میکنم با مثال بالا درک کرده باشید که منظورم چیه. و همین قضیه نشون میده که وقتی کلید enter رو میزنیم؛ صفحه به سمت بالا حرکت میکنه. و نه insertion point به سمت پایین گرفتید؟حالا برای حل این مشکل کارکتر 13 یا همون CR ساخته میشه. CR میاد insertion point رو قبل از رفتن به خط بعدی به اول خط میاره و اینجوری دیگه مشکل بالا رو نخواهیم داشت.حالا جالبه که توی پرینتر های مدرن دیگه این مشکل وجود نداره به همین خاطر سیستم عامل های مک که از ورژن 10 بالاتر هستند. در واقع دیگه از CR برای رفتن و به عبارتی تعریف خط جدید استفاده نمیکنند. و مثل دیگر سیستم های یونیکسی فقط Line Feed استفاده میکنند که همون n\ هستش. اما این قضیه جایی برام جالب شد که توی نوت پد این رو دیدم :در این عکس قسمتی که نوشته windows CRLF داره در مورد همین موضوع میگه که توی ویندوز برای رفتن به خط بعدی از CR + LF استفاده میشه و با توجه به این که هر کارکتر یک بایت از مموری رو اشغال میکنه.پس به ازای هر خط جدید دو بایت به فایلتون در ویندوز اضاف میشه در حالی که توی لینوکس و مک اینجوری نیست و فقط یک بایت به ازای هر خط جدید به فایل اضاف میشه.اما این یه مزیت هم داره، مزیتش اینه که اگر روزی احیانن بخواید از پرینتر های قدیمی استفاده کنید. تنها سیستمی که به احتمال خیلی زیاد مشکلی رو براتون به ارمغان نمیاره همین سیستم استفاده از این دو کارکتره.نمیدونم چقدر این دانستنی به دردمون میخوره ولی چیزی بود که حین تمرین تایپ سیفتی بهش رسیدم گفتم شاید باحال باشه و شما هم بخواید بدونید من فَرِهان هستم و مرسی که این مطلب رو خوندید.من رو در شبکه های مجازی میتونید فالو کنید :اینستاگرام : atfarhanwdتلگرام : atfarhanwd</description>
                <category>Amber Eye</category>
                <author>Amber Eye</author>
                <pubDate>Thu, 02 May 2024 23:39:34 +0330</pubDate>
            </item>
                    <item>
                <title>تجربه من از کار با کامپیوتر و یادگیری زبان برنامه نویسی</title>
                <link>https://virgool.io/codenevis/%D8%AA%D8%AC%D8%B1%D8%A8%D9%87-%D9%85%D9%86-%D8%A7%D8%B2-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-%DA%A9%D8%A7%D9%85%D9%BE%DB%8C%D9%88%D8%AA%D8%B1-%D9%88-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%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-ndir0pqcsz40</link>
                <description>🤒👹کامپیوتر ها چقدر احمق هستند؟ و چطوری فکر میکنند؟حتما الان فکر میکنید دارم چرت میگم؟ دیگهتجربه یادگیری cpp بلاخره بعد از مدت ها کتابی پیدا کردم که دارم باهاش میرم جلو و این کتاب programming princples and practice using c plus plus هست زیاد به دوتا پاراگراف بعدی توجه نکنید👍 اگر چیزی از برنامه نویسی نمیدونید و فقط یه نگاه کنید نیازی نیست همشو بفهمید. اصل قضیه اون تیکه لیست کردن هست.الان اخر چپتر دو هستم که رسیدم به تمرین هاش حقیقتا نهایت چیزی که توی فصل 2 گفت در مورد بحث link کردن و compile و اینا گفت و در نهایت هم گفت برو توی appendix ها و بخش c رو بخون که آموزش ساخت پروژه با برنامه Visual studio Code بود. و در نهایت هم یه برنامه که بنویسه hello world رو توضیح داد ... حالا drills اش خیلی خوب بود ، drills توی کتاب های برنامه نویسی تمرینی هست که خیلی بدیهی و ساده هست برای این که سعی کنید دست به کد بشید تا اون مهارت رو یاد بگیرید ولی حالا تمریناش چیاست؟یه لیست بنویس که بیاد به یه کامپیوتر یا ادمی که یهویی اومده تو خونتون و اصلا نمیدونه دستشویی چیه بگو که چطوری بره به سمت دستشویی! این برای اینه که مثل یه کامپیوتر فکر کنی! حقیقتا کلی مرحله تو ذهنمه مثلا : (اینا رو ویدیو میگیرم و میزارم چنل و توضیحشون میدم.)بریم لیست کنیم1- سلام، کامپیوتر (یا هر کوفت و زهر مار دیگه😂).2- دستشویی جایی برای #$+* هست (لعنتی من چطوری بهش بگم دستشویی چیه؟😐)__تو این مرحله فرض میکنم میدونه این *+$# چیه😂—3- از همینجا که ایستادی (با فرض این که ایستادن رو میدونه یعنی چی)4- به سمت راست 90 درجه بچرخ (با فرض این که میدونه سمت راست و 90 درجه و اصلا چرخیدن چیه😐 چقده خنگه 😐😐)5- بعد 10 قدم عادی به سمت جلو بردار و سپس بایست(با فرض این که بتونه تا 10 بشماره، قدم عادی رو بدونه و جهت جلو و اصلا رفتن براش تعریف شده باشه😤)6- بعد 90 درجه به جهت چپ بچرخ و از پله ها بالا برو (حالا سختی کار اینه که باید بهش یاد بدی که چطوری از پله بالا میرن و اصلا پله چیه🤕)7- هر چی پله هست رو برو بالا وقتی پله ها تموم شد.8- 90 درجه به راست بچرخ و 20 قدم به جلو بردار و بایست و 90 درجه به راست بچرخ.9- (با فرض این که این اسکل میدونه در چیه) در رو که دیدی دستگیره رو بگیر و به پایین فشار بده (حالا باید بدونه دستگیره چیه و چطوری بگیره چقدر فشار بده و اصلا پایین چیه😪🙄🤐😑)10- در رو باز کن (میدونید میخوام چی بگم 😐دیگه) و در نهایت برو تو و دشوری کن.11- (از اینجا باید بهش بگم چطوری دشوری کن که باید یه مراحل کثیفی رو بیان کنم که بنا به محض رضای خودم و شما ادامه نمیدم)شاید در کل براتون عجیب باشه ولی واقعا کامپیوتر همینجوریه باید تک تک کارایی که میخواید رو بهش بگید و این خیلی سخته ... خوشبختانه الان اتفاقی افتاده که دیگه مجبور نیستید همه این چیزا رو بهش بگید ولی در همین حد احمق و پلشته! و شما با برنامه نویسی باهاش حرف میزنید. این یکی از تمرین های کتاب بود من برم کدش رو بزنم💔😻پ.ن : سی پلاس پلاس رو دوست دارم😊</description>
                <category>Amber Eye</category>
                <author>Amber Eye</author>
                <pubDate>Sun, 14 Apr 2024 18:09:17 +0330</pubDate>
            </item>
                    <item>
                <title>چرا بیان و ویرگول و جاهای دیگه نمردن!</title>
                <link>https://virgool.io/@farx/%DA%86%D8%B1%D8%A7-%D8%A8%DB%8C%D8%A7%D9%86-%D9%88-%D9%88%DB%8C%D8%B1%DA%AF%D9%88%D9%84-%D9%88-%D8%AC%D8%A7%D9%87%D8%A7%DB%8C-%D8%AF%DB%8C%DA%AF%D9%87-%D9%86%D9%85%D8%B1%D8%AF%D9%86-vhhufoouflf8</link>
                <description>بعله...در باب این مطلب این رو بگم که فکر میکردم ویرگول مردهتازه فکر میکردم بد هم مردهیعنی جوری که دیگه سگ هم توش پرسه نمیزنه.ولی اشتباه میکردماشتباه خیلی بزرگی هم میکردم.در حقیقت من چیزی نمینوشتم که کسی بیاد و بگه وای چقدر خفن بزار لایکش کنم یا کامنت بزارم.وقتی چیزی برای ارائه نداشتم و حرفی نمیزدمو اگر هم میزدم چیزی نبوده که براشون لذت بخش باشهمعلومه کسی چیزی نمیگه.پس اینجوریه که فکر میکنم اینجا مرده یا جاهای دیگه مردن.در حالی که نه.من فقط ساکت تر شدممردم الکی لایک نمیکننو این یعنی رشد فرهنگیمردم دارن یاد میگیرن تا الکی به هرچیزی ری اکشن نشون ندنکجاش بده واقعا؟شاید بگیم خب ولی پست من که خیلی باحاله.اوکی آره مثلا اگر من الان بیام و یه پست در مورد نوشتن یه پروتکل سراسری عجیب غریب توی کامپیوتر بنویسم خیلی باحالهولی یه سوال آیا برای جامعه ای که عمومش چیزی از خاص بودن پست من نمیدونن هم باحاله؟در حقیقت اون چیزی که برای ما باحاله همیشه لزوما برای همه باحال نیست.چون خیلی ها اصلا نمیفهمن داری چی میگی؟ و اما موضوع بعدی بحث ترندهجامعه بیان چرا خالی تر شده؟چون تمام اون بچه هایی که یه روزی اینجا خیلی فعال بودن الان بزرگتر شدندیگه دغدغه ی بچگانه ای وجود ندارهدیگه کارهدانشگاستزندگیهو حتی درسای دبیرستانهدیگه بحث این نیست که برم بشینم در مورد فلان انیمه بنویسم.واقعیت زندگی همینه . وقتی واردش میشی جدیه ولی فان و باحاله.ولی وقتت رو میگیرهو ذهنیتت اینقدر آشوبناکه که نمیدونی از بین این همه ناگفته کدوم رو بگیو بعضیا هم این وسط به این فکر میرسن که خب چه کاریه که یه دغدغه ی دیگه برای خودم ایجاد کنم که حالا چی بگم یا چی نگم. و خب سعی میکنن فعالیتشون رو توی این فضا قطع کنن ولی نه این که نباشن.خیلی هم هستن!</description>
                <category>Amber Eye</category>
                <author>Amber Eye</author>
                <pubDate>Fri, 08 Mar 2024 04:01:18 +0330</pubDate>
            </item>
                    <item>
                <title>روز جهانی زن رو به تک تک دختر ها و زن ها تبریک میگم.</title>
                <link>https://virgool.io/@farx/%D8%B1%D9%88%D8%B2-%D8%AC%D9%87%D8%A7%D9%86%DB%8C-%D8%B2%D9%86-%D8%B1%D9%88-%D8%A8%D9%87-%D8%AA%DA%A9-%D8%AA%DA%A9-%D8%AF%D8%AE%D8%AA%D8%B1-%D9%87%D8%A7-%D9%88-%D8%B2%D9%86-%D9%87%D8%A7-%D8%AA%D8%A8%D8%B1%DB%8C%DA%A9-%D9%85%DB%8C%DA%AF%D9%85-akwljeiz0kbj</link>
                <description>Whether it’s a friend, mentor, or even yourself - who do you celebrate this #IWD24? I celebrate every true woman in this world!Happy International Women&#x27;s Day!This message is for all the girls, moms, and women out there, and also for all the men who love women not just for sex, but for understanding their differences and admiring them. Women are not the opposite sex, they complement us.and, let us make a wish for the freedom of Iranian women. 🙂درود بر شما، روز جهانی زن رو تبریک میگم.اینو به تمام دختر ها.......مامانا.........نویسنده های خفن زن مثل لوئیز هی.......و هر زن واقعیه دیگه ای تبریک میگم.و آرزوی بهترینا رو واسه تک تکتون میکنم. دختر ها مکمل ما هستن، من به شخصه با دوستای دخترم راحت ترم.  توی دویرنت فردا شب (یعنی امشب!) قرعه کشی روز جهانی زن رو انجام میدیم😍🆔 @devirnet ✅</description>
                <category>Amber Eye</category>
                <author>Amber Eye</author>
                <pubDate>Fri, 08 Mar 2024 03:34:07 +0330</pubDate>
            </item>
                    <item>
                <title>چرا دایناسور ها مثل ما باهوش نشدند و تکامل نیافتند؟</title>
                <link>https://virgool.io/@farx/%DA%86%D8%B1%D8%A7-%D8%AF%D8%A7%DB%8C%D9%86%D8%A7%D8%B3%D9%88%D8%B1-%D9%87%D8%A7-%D9%85%D8%AB%D9%84-%D9%85%D8%A7-%D8%A8%D8%A7%D9%87%D9%88%D8%B4-%D9%86%D8%B4%D8%AF%D9%86%D8%AF-%D9%88-%D8%AA%DA%A9%D8%A7%D9%85%D9%84-%D9%86%DB%8C%D8%A7%D9%81%D8%AA%D9%86%D8%AF-mmus39svsqja</link>
                <description>قسمت اول پادکست کوتاه ساده گو....ویدیو پادکست  https://www.namasha.com/v/d653ks8U درود، من پادکستی رو راه انداختم که در واقع یک پادکست ویژوال و تصویری هستش.این پادکست رو میتونید داخل اینستاگرام  به آدرس sadehgoo@ (کلیک کنید) پیدا کنید.ساده گو یه پادکست کوتاه هست که فعلا جاش توی اینستاست. هر چند که به زودی جاهای دیگه هم به همین آدرس پیداش میتونید کنید.ولی اگر اکانت اینستا دارید و دوست دارید یه پادکست کوتاه روزانه بشنوید چیزی که هم سرگرمتون کنه و هم یه سری چیز میز یاد بگیرید میتونید فالوش کنید. البته این پادکست فقط از روز یکشنبه تا چهارشنبه پست کوتاه داره و روزای جمعه پست هایی تا حدود 10 دقیقه داره. که در مورد بحث کتاب و کلی چیز بامزه و باحال دیگه صحبت میکنه. اسکریپت پادکست :سلام اینجا ساده گوهه و من هر روز یه سوال میپرسم و به اون سوال جواب میدم. سوال امروز اینه که 🎥 :  ❓ اگر دایناسور ها بیشتر از 130 میلیون سال روی زمین حکمرانی میکردند چرا نتونستند مثل ما باهوش بشند و تکامل پیدا کنند مغز که داشتند زمان هم داشتند پس چرا نتونستند؟  ✍️ درسته، دایناسور ها مغز داشتند، حتی برخی از اون ها مثل ترودون ها مغز بزرگی نسبت به هیکلشون داشتند. و از اونجایی که انگشت داشتند میتوانستند از سنگ و چوب و اینجور چیز ها به عنوان ابزار استفاده کنند دقیقا مثل انسان های اولیه.اما ترودون ها در بین این همه دایناسور استثنا بودند. چون باقی دایناسور ها مغز های کوچکی به نسبت بدنشون داشتند و حقیقتا واسۀ بقا که مهمترین چیز برای یک گونه هست به مغز بزرگ نیاز نداشتند.  چون ویژگی هایی که داشتند مثل سرعت، قدرت، زره، چنگال،دندان، شاخ و البته اندازه بزرگشون، بهشون نسبت به باقی گونه ها برتری خاصی میداده و میتونستند، راحت غذا به دست بیارند، تولید مثل کنند و از شکار شدن در امان باشن. از طرف دیگه هر چقدر که مغز بزرگتر باشه نگهداریش سخت تره، این یعنی به غذا و اکسیژن بیشتری برای این که مغزتون درست کار کنه نیاز دارید.  در نهایت به دلیل اندازۀ بزرگی که داشتند؛ بلوغ و رشد دایناسور ها زمان زیادی میگرفته. و با توجه به چیز هایی که گفتم نیازی به یادگیری، همکاری جمعی گسترده، ارتباط و نوآوری برای رسیدن به هدفشون یعنی بقا به اون صورت نداشتند. پس دلیلی نداشته که مثل ما باهوش بشن. چون ما انسان ها موجودات کاملا متفاوتی هستیم. ما خیلی بزرگ نبودیم سریعترین نبودیم و در بالای زنجیره غذایی قرار نداشتیم پوست ضعیف تری داشتیم و خیلی آسیب پذیربودیم و حتی گهگاها مجبور به مهاجرتِ بینِ قاره ای میشدیم به همین خاطر در طی دوران به اجبار به این سمت تکامل یافتیم که همکاری داشته باشیم، یاد بگیریم، نوآوری کنیم، ارتباط بگیریم و حتی خط رو طراحی کنیم تا بتونیم به هدفهمون یعنی بقا دست پیدا کنیم 🌱</description>
                <category>Amber Eye</category>
                <author>Amber Eye</author>
                <pubDate>Thu, 07 Mar 2024 02:07:43 +0330</pubDate>
            </item>
            </channel>
</rss>