<?xml version="1.0"?>
<rss version="2.0"><channel><title>&#x635;&#x641;&#x62D;&#x647; &#x627;&#x635;&#x644;&#x6CC;: مطالب علمی و اطلاعات عمومی</title><link>https://sinajalalvandi.ir/blog/scientific-and-general/?d=6</link><description>&#x635;&#x641;&#x62D;&#x647; &#x627;&#x635;&#x644;&#x6CC;: مطالب علمی و اطلاعات عمومی</description><language>fa</language><item><title>&#x633;&#x6CC;&#x633;&#x62A;&#x645; &#x647;&#x627;&#x6CC; &#x6A9;&#x627;&#x645;&#x67E;&#x6CC;&#x648;&#x62A;&#x631;&#x6CC; F-14 Tomcat: &#x645;&#x63A;&#x632; &#x62F;&#x6CC;&#x62C;&#x6CC;&#x62A;&#x627;&#x644; &#x6CC;&#x6A9; &#x62C;&#x646;&#x6AF;&#x646;&#x62F;&#x647; &#x627;&#x641;&#x633;&#x627;&#x646;&#x647;&#x200C;&#x627;&#x6CC;</title><link>https://sinajalalvandi.ir/blog/scientific-and-general/%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D9%85%D9%BE%DB%8C%D9%88%D8%AA%D8%B1%DB%8C-f-14-tomcat-%D9%85%D8%BA%D8%B2-%D8%AF%DB%8C%D8%AC%DB%8C%D8%AA%D8%A7%D9%84-%DB%8C%DA%A9-%D8%AC%D9%86%DA%AF%D9%86%D8%AF%D9%87-%D8%A7%D9%81%D8%B3%D8%A7%D9%86%D9%87%E2%80%8C%D8%A7%DB%8C-r43/</link><description><![CDATA[
<p><img src="https://sinajalalvandi.ir/uploads/monthly_2025_09/54196492673_7ce6f50043_b.jpg.2ac9dbb18c363f834cb0acdd3f888490.jpg" /></p>
<p>در دنیای هواپیماهای جنگنده، جایی که سرعت، دقت و فناوری با هم حرکت می‌کنند، F-14 Tomcat نامی است که هنوز هم لرزه بر اندام طرفداران هوانوردی می‌اندازد. این جنگنده آمریکایی، که در دهه ۱۹۷۰ میلادی به خدمت نیروی دریایی ایالات متحده درآمد، نه تنها به خاطر بال‌های متغیر و ظاهر سینمایی‌اش در فیلم‌هایی مثل Top Gun معروف شد، بلکه به دلیل سیستم‌های کامپیوتری پیشرفته‌اش، که در آن زمان مرزهای فناوری را جابه‌جا کرد، شهرت یافت. کامپیوترهای onboard F-14، از سیستم کنترل داده‌های هوایی (CADC) گرفته تا رادار AWG-9، این هواپیما را به یک ماشین جنگی هوشمند تبدیل کردند. در این مقاله، به بررسی دقیق و جامع این سیستم‌ها می‌پردازیم – از تاریخچه توسعه‌شان تا نقش‌شان در عملیات واقعی و تأثیرشان بر فناوری‌های امروزی. اگر به دنبال درک عمیق‌تری از چگونگی ادغام کامپیوترها در یک پلتفرم نظامی هستید، این مطلب را دنبال کنید</p><p style="text-align:center;"><img class="ipsImage ipsRichText__align--block" data-fileid="37" src="https://sinajalalvandi.ir/uploads/monthly_2025_09/233596-4362944cd6236dee41b79f48bb8c90f5.png.cd71ba5128ba500a8fcadeae5f52c893.png" alt="233596-4362944cd6236dee41b79f48bb8c90f5.png" title="233596-4362944cd6236dee41b79f48bb8c90f5.png" width="647" height="500" loading="lazy"></p><h3>تاریخچه توسعه F-14 و نیاز به کامپیوترهای پیشرفته</h3><p>F-14 Tomcat، محصول شرکت Grumman Aerospace، در اواخر دهه ۱۹۶۰ طراحی شد تا جایگزینی برای هواپیمای شکست‌خورده F-111B باشد. نیروی دریایی آمریکا به دنبال یک جنگنده رهگیر بود که بتواند بمب‌افکن‌های شوروی را در فواصل دور شناسایی و نابود کند، در حالی که قابلیت مانور در نبردهای نزدیک را هم داشته باشد. اما چالش اصلی، نه در موتورها یا بال‌ها، بلکه در سیستم‌های الکترونیکی و کامپیوتری بود. در آن دوران، هواپیماهای جنگنده عمدتاً به ابزارهای آنالوگ وابسته بودند – گیج‌های مکانیکی و محاسبات دستی خلبانان. F-14 قرار بود متفاوت باشد: یک سیستم یکپارچه دیجیتال که بتواند داده‌های پروازی، راداری و تسلیحاتی را در زمان واقعی پردازش کند.</p><p>توسعه این سیستم‌ها از سال ۱۹۶۸ آغاز شد و Garrett AiResearch (حالا بخشی از Honeywell) نقش کلیدی ایفا کرد. مهندسانی مثل Ray Holt، که بعدها به عنوان یکی از پیشگامان میکروپروسسورها شناخته شد، بر روی CADC کار کردند.</p><p>هدف؟ ایجاد یک کامپیوتر کوچک، مقاوم در برابر لرزش‌های پرواز و تداخل‌های الکترومغناطیسی، که بتواند ارتفاع، سرعت و زوایای حمله را محاسبه کند. این پروژه نه تنها F-14 را به پرواز درآورد، بلکه پایه‌گذار عصر میکروپروسسورها در صنعت هوافضا شد. اولین پرواز F-14 در دسامبر ۱۹۷۰ اتفاق افتاد و تا سال ۱۹۸۱، بیش از ۷۰۰ فروند از این هواپیما ساخته شد.</p><h3>CADC و اولین میکروپروسسور جهان در قلب F-14</h3><p style="text-align:center;"><a href="https://sinajalalvandi.ir/uploads/monthly_2025_09/f14_adc_full.jpg.4c18bfa0a8fb27d91e7bb1fa495d21ae.jpg" class="ipsAttachLink ipsAttachLink_image ipsRichText__align--block" data-fileid="40" data-fileext="jpg" rel=""><img class="ipsImage ipsImage_thumbnailed" data-fileid="40" src="https://sinajalalvandi.ir/uploads/monthly_2025_09/f14_adc_full.thumb.jpg.60ec7bc49b61cf08d6e22e03646b8180.jpg" alt="f14_adc_full.jpg" title="f14_adc_full.jpg" width="563" height="750" loading="lazy"></a></p><p style="text-align:center;">CADC Computer</p><p>اگر بخواهیم از یک سیستم کامپیوتری خاص در F-14 نام ببریم، CADC (Central Air Data Computer) بدون شک ستاره اصلی است. این سیستم، که در سال ۱۹۷۰ تکمیل شد، به عنوان اولین کامپیوتر دیجیتال پروازی نظامی شناخته می‌شود و حاوی MP944، نخستین میکروپروسسور واقعی جهان بود. برخلاف تصور رایج که Intel 4004 را اولین می‌داند، MP944 Garrett AiResearch در واقع پیشگام بود – هرچند به دلیل محرمانه بودن پروژه نظامی، سال‌ها پنهان ماند.</p><p style="text-align:center;"><a href="https://sinajalalvandi.ir/uploads/monthly_2025_09/0_Xq5TqLwwwsM9gpPf.jpg.e6acd9cba2e1301e9831f8630e249067.jpg" class="ipsAttachLink ipsAttachLink_image ipsRichText__align--block" data-fileid="41" data-fileext="jpg" rel=""><img class="ipsImage ipsImage_thumbnailed" data-fileid="41" src="https://sinajalalvandi.ir/uploads/monthly_2025_09/0_Xq5TqLwwwsM9gpPf.thumb.jpg.3035bf2c6f631bb361d15d96c0f9876c.jpg" alt="MP944 MicroProcessor" title="MP944 MicroProcessor" width="916" height="750" loading="lazy"></a></p><p style="text-align:center;">MP944 MicroProcessor</p><p>CADC یک جعبه کوچک (حدود اندازه یک کیف دستی) بود که از ۲۲ تراشه مجتمع (IC) تشکیل شده بود. این تراشه‌ها با هم یک واحد پردازشی واحد (MPU) می‌ساختند و داده‌های حسگرهایی مثل لوله پیتوت (برای اندازه‌گیری سرعت هوا) و استاتیک (برای ارتفاع) را دریافت می‌کردند.</p><p>خروجی؟ محاسبات دقیق سرعت واقعی (TAS)، سرعت ماخ، نرخ صعود/نزول و زاویه حمله. این داده‌ها مستقیماً به سیستم کنترل پرواز، نمایشگرهای کابین و حتی بال‌های متغیر F-14 ارسال می‌شدند.</p><p>تصور کنید: خلبان در حال مانور با سرعت ۲.۵ ماخ، جایی که حتی یک ثانیه تأخیر می‌تواند فاجعه‌بار باشد. CADC با فرکانس کلاک ۱ مگاهرتز و حافظه ۴ کیلوبایت ROM، این محاسبات را در کمتر از ۱۰۰ میلی‌ثانیه انجام می‌داد. Ray Holt در خاطراتش توصیف می‌کند که چگونه تیمش برای غلبه بر محدودیت‌های فناوری ۱۹۶۰، از مدارهای سفارشی استفاده کرد – بدون دسترسی به ابزارهای مدرن مثل شبیه‌سازها. این سیستم دوگانه بود (یکی پشتیبان) تا در صورت خرابی، هواپیما سقوط نکند.</p><p>در مدل‌های اولیه F-14A، CADC نقش حیاتی در تنظیم بال‌های متغیر داشت. بال‌ها از ۲۰ درجه (برای سرعت بالا) تا ۶۸ درجه (برای مانور) تغییر می‌کردند، و CADC این تغییرات را بر اساس داده‌های هوایی پیشنهاد می‌داد. بعدها، در F-14D، این سیستم با DFCS (Digital Flight Control System) ادغام شد تا پایداری در زوایای حمله بالا (تا ۵۰ درجه) را تضمین کند. بدون CADC، F-14 نمی‌توانست به عنوان یک رهگیر فوق‌مانورپذیر عمل کند.</p><p style="text-align:center;"><img class="ipsImage ipsRichText__align--block" data-fileid="42" src="https://sinajalalvandi.ir/uploads/monthly_2025_09/Picture2-1.jpg.77f602c27fcb9203ea0746857fb44431.jpg" alt="Picture2-1.jpg" title="Picture2-1.jpg" width="827" height="655" loading="lazy"></p><p style="text-align:center;">Digital Flight Control Computer</p><h3>سیستم رادار و کنترل تسلیحات: AWG-9، مغز متفکر نبرد</h3><p>F-14 بدون سیستم رادار AWG-9 (AN/AWG-9) ناقص بود. این رادار، توسعه‌یافته توسط Hughes Aircraft، یکی از پیشرفته‌ترین سیستم‌های کامپیوتری زمان خود بود و قابلیت ردیابی همزمان ۲۴ هدف و درگیری با ۶ هدف را داشت – در راداری با برد ۱۸۵ مایل (حدود ۳۰۰ کیلومتر). AWG-9 از یک کامپیوتر دیجیتال مجزا استفاده می‌کرد که داده‌های راداری را با ورودی‌های CADC ترکیب می‌کرد تا موشک‌های AIM-54 Phoenix را هدایت کند.</p><p style="text-align:center;"><img class="ipsImage ipsRichText__align--block" data-fileid="38" src="https://sinajalalvandi.ir/uploads/monthly_2025_09/AWG-92.PNG.e0d3fb63f77d541611ddce6d3e0ad18e.PNG" alt="AWG-9 2.PNG" title="AWG-9 2.PNG" width="640" height="710" loading="lazy"></p><p style="text-align:center;">AN/AWG-9 Radar</p><p>کامپیوتر AWG-9، بر پایه پردازنده‌های سفارشی، الگوریتم‌های پیچیده‌ای برای فیلتر نویز و پیش‌بینی مسیر اهداف اجرا می‌کرد. مثلاً، در عملیات واقعی مثل نبرد با میراژهای عراقی در ۱۹۹۱، خلبانان F-14 توانستند اهداف را از فاصله ۱۰۰ مایلی قفل کنند. سیستم شامل یک نمایشگر TID (Tactical Information Display) برای افسر تسلیحات (RIO) بود که نقشه‌های سه‌بعدی و مسیرهای پیش‌بینی‌شده را نشان می‌داد.</p><p style="text-align:center;"><a href="https://sinajalalvandi.ir/uploads/monthly_2025_09/dcs-world-f-14-tomcat-30.jpg.323e458822b59766354e48fabe0c6a7b.jpg" class="ipsAttachLink ipsAttachLink_image ipsRichText__align--block" data-fileid="44" data-fileext="jpg" rel=""><img class="ipsImage ipsImage_thumbnailed" data-fileid="44" src="https://sinajalalvandi.ir/uploads/monthly_2025_09/dcs-world-f-14-tomcat-30.thumb.jpg.b2c1360b67a85275a3a77f3d312f7405.jpg" alt="dcs-world-f-14-tomcat-30.jpg" title="dcs-world-f-14-tomcat-30.jpg" width="1000" height="562" loading="lazy"></a></p><p style="text-align:center;">F14 - TID</p><p>در بخش تسلیحات، کامپیوتر مرکزی (Weapon Control Computer) نقش هماهنگ‌کننده را داشت. این سیستم، که بخشی از avionics suite بود، موشک‌های AIM-7 Sparrow، AIM-9 Sidewinder و حتی بمب‌های هدایت‌شونده را مدیریت می‌کرد.</p><p>در مدل F-14D، با اضافه شدن LANTIRN (Low Altitude Navigation and Targeting Infrared for Night)، کامپیوترها قابلیت حمله زمینی دقیق را هم به دست آوردند – چیزی که F-14 را از یک رهگیر خالص به یک جنگنده چندمنظوره تبدیل کرد.</p><p>جالب است بدانید که AWG-9 به قدری پیچیده بود که نیاز به یک رادیو جداگانه برای ارتباط با ناوهای هواپیمابر داشت. خلبانان اغلب می‌گفتند: "رادار F-14 مثل یک شطرنج‌باز ماهر است – همیشه سه حرکت جلوتر فکر می‌کند."</p><h3>سیستم‌های ناوبری و avionics جانبی: از INS تا ACLS</h3><p>علاوه بر CADC و AWG-9، F-14 به سیستم‌های ناوبری پیشرفته‌ای مجهز بود. INS (Inertial Navigation System) اولیه، بر پایه ژیروسکوپ‌های مکانیکی، موقعیت را بدون نیاز به سیگنال‌های خارجی محاسبه می‌کرد. در مدل‌های بعدی، GPS ادغام شد تا دقت را به سطح متری برساند. کامپیوتر ناوبری، که بخشی از Multipurpose Reconfigurable Array Computer System (MRAAS) در F-14D بود، داده‌های INS، GPS و ستاره‌شناسی را ترکیب می‌کرد.</p><p style="text-align:center;"><a href="https://sinajalalvandi.ir/uploads/monthly_2025_09/1661264661-inertial-navigation-systems.jpg.8fc13ac161e08c3b9b5412622e7ba714.jpg" class="ipsAttachLink ipsAttachLink_image ipsRichText__align--block" data-fileid="45" data-fileext="jpg" rel=""><img class="ipsImage ipsImage_thumbnailed" data-fileid="45" src="https://sinajalalvandi.ir/uploads/monthly_2025_09/1661264661-inertial-navigation-systems.thumb.jpg.52046594c621b5ec49b14f5d530031cb.jpg" alt="1661264661-inertial-navigation-systems.jpg" title="1661264661-inertial-navigation-systems.jpg" width="1000" height="515" loading="lazy"></a></p><p style="text-align:center;">Inertial Navigation System</p><p>یکی از ویژگی‌های فراموش‌نشدنی، ACLS (Automatic Carrier Landing System) بود. این سیستم کامپیوتری، که از داده‌های CADC و رادار ناو استفاده می‌کرد، فرود خودکار بر عرشه ناو را ممکن می‌سازد – حتی در طوفان. خلبان با فعال کردن آن را، و کامپیوتر بقیه کار را انجام می‌داد: تنظیم سرعت، زاویه و حتی ترمزها.</p><p>avionics F-14 شامل ECM (Electronic Countermeasures) هم بود – کامپیوتری که سیگنال‌های جمینگ دشمن را تحلیل و خنثی می‌کرد. کل این مجموعه، حدود ۱۰۰۰ پوند وزن داشت و قدرت مصرفی‌اش معادل یک خانه کوچک بود، اما در برابر EMP (پالس الکترومغناطیسی) مقاوم طراحی شده بود.</p><p style="text-align:center;"><a href="https://sinajalalvandi.ir/uploads/monthly_2025_09/maxresdefault.jpg.98e7e1085555a6fdb2417b31c993a542.jpg" class="ipsAttachLink ipsAttachLink_image ipsRichText__align--block" data-fileid="46" data-fileext="jpg" rel=""><img class="ipsImage ipsImage_thumbnailed" data-fileid="46" src="https://sinajalalvandi.ir/uploads/monthly_2025_09/maxresdefault.thumb.jpg.50b84b45a68fcf4c96d4dd96cb271244.jpg" alt="maxresdefault.jpg" title="maxresdefault.jpg" width="1000" height="562" loading="lazy"></a></p><p style="text-align:center;">Electronic Countermeasures</p><h3>ارتقاها در مدل‌های F-14B و F-14D</h3><p>F-14A اولیه، هرچند انقلابی، محدودیت‌هایی داشت – مثل موتورهای TF30 که ناپایدار بودند. در F-14B (۱۹۸۱)، موتورها به F110-GE-400 ارتقا یافتند و avionics با DFCS دیجیتال جایگزین شد. DFCS، توسعه‌یافته توسط Litton Systems، کنترل پرواز را کاملاً کامپیوتری کرد و پایداری در مانورهای شدید را افزایش داد.</p><p>اوج ارتقا در F-14D Super Tomcat (۱۹۹۱) بود. با MRAAS، که شامل پردازنده‌های ۱۶ بیتی بود، F-14D قابلیت‌های چندمنظوره‌ای مثل حمله شبانه با بمب‌های لیزری به دست آورد. کامپیوترهای جدید، حجم داده را ۱۰ برابر افزایش دادند و رابط کاربری را برای خلبانان آسان‌تر کردند – از نمایشگرهای CRT به LCD.</p><p>این ارتقاها F-14 را تا سال ۲۰۰۶، زمانی که بازنشسته شد، مرتبط نگه داشت. بیش از ۵۵ فروند F-14D ساخته شد و در عملیات‌های بالکان و خلیج فارس، نقش کلیدی ایفا کردند.</p><p style="text-align:center;"><a href="https://sinajalalvandi.ir/uploads/monthly_2025_09/F-14A_Tomcat_of_VF-126_at_NAS_Miramar_1991.JPEG.3901b3c9301084e7314497fb051ea6b2.JPEG" class="ipsAttachLink ipsAttachLink_image ipsRichText__align--block" data-fileid="47" data-fileext="JPEG" rel=""><img class="ipsImage ipsImage_thumbnailed" data-fileid="47" src="https://sinajalalvandi.ir/uploads/monthly_2025_09/F-14A_Tomcat_of_VF-126_at_NAS_Miramar_1991.thumb.JPEG.73addcd41ec363a8af2cca05c6e76962.JPEG" alt="F-14A_Tomcat_of_VF-126_at_NAS_Miramar_1991.JPEG" title="F-14A_Tomcat_of_VF-126_at_NAS_Miramar_1991.JPEG" width="1000" height="662" loading="lazy"></a></p><p style="text-align:center;">F14 - Tomcat</p><h3>تأثیر F-14 بر فناوری کامپیوتری مدرن</h3><p>کامپیوترهای F-14 فقط برای جنگ نبودند؛ آن‌ها فناوری‌هایی را پایه‌گذاری کردند که امروز در زندگی روزمره ما هست. MP944 CADC الهام‌بخش Intel 4004 شد و مفاهیم redundancy (پشتیبان‌گیری) و real-time processing را به صنعت آورد. الگوریتم‌های ردیابی AWG-9 در رادارهای مدرن مثل AN/APG-81 F-35 استفاده می‌شود.</p><p>در حوزه نرم‌افزاری، کدهای F-14 (به زبان اسمبلی سفارشی) الگویی برای سیستم‌های embedded امروزی مثل droneها شد. حتی در Rust – زبانی که به امنیت و concurrency اهمیت می‌دهد – می‌توان ردپای این سیستم‌ها را دید، جایی که ایمنی حافظه مثل redundancy CADC حیاتی است.</p><p>F-14 به ما یادآوری می‌کند که فناوری نظامی اغلب پیش‌درآمد نوآوری‌های civilian است. بدون CADC، شاید میکروپروسسورهای شخصی دیرتر می‌رسیدند.</p><h3>میراث جاودان Tomcat</h3><p>F-14 Tomcat بیش از یک هواپیما بود؛ نمادی از چگونگی تغییر کامپیوترها در میدان نبرد. از CADC که بال‌ها را رقصاند تا AWG-9 که آسمان را تسخیر کرد، این سیستم‌ها F-14 را به افسانه‌ای تبدیل کردند. امروز، با وجود جنگنده‌های stealth مثل F-22، روح Tomcat در هر سیستم avionics پیشرفته‌ای زنده است.</p>]]></description><guid isPermaLink="false">43</guid><pubDate>Sun, 21 Sep 2025 22:00:00 +0000</pubDate></item><item><title>&#x62E;&#x633;&#x648;&#x641; &#x6A9;&#x627;&#x645;&#x644; &#x627;&#x645;&#x634;&#x628; - &#x6F1;&#x6F6; &#x634;&#x647;&#x631;&#x6CC;&#x648;&#x631; &#x6F1;&#x6F4;&#x6F0;&#x6F4;</title><link>https://sinajalalvandi.ir/blog/scientific-and-general/%D8%AE%D8%B3%D9%88%D9%81-%DA%A9%D8%A7%D9%85%D9%84-%D8%A7%D9%85%D8%B4%D8%A8-%DB%B1%DB%B6-%D8%B4%D9%87%D8%B1%DB%8C%D9%88%D8%B1-%DB%B1%DB%B4%DB%B0%DB%B4-r37/</link><description><![CDATA[
<p><img src="https://sinajalalvandi.ir/uploads/monthly_2025_09/Header-SF-LunarEclipse-MY.jpg.dae37fa059b85177f4196f7ac7828e65.jpg" /></p>
<p>امشب، یکشنبه ۱۶ شهریور ۱۴۰۴ (۷ سپتامبر ۲۰۲۵)، آسمان ایران میزبان یکی از زیباترین نمایش‌های کیهانی سال خواهد بود: <strong>خسوف کامل ماه</strong>، که به «ماه خونین» معروف است. اگر به نجوم علاقه دارید یا حتی فقط دوست دارید لحظاتی از زیبایی‌های طبیعت و آسمان لذت ببرید، این رویداد را از دست ندهید. در این مقاله، همه‌چیز درباره این پدیده شگفت‌انگیز، زمان‌بندی دقیق، چگونگی رصد و چند نکته کاربردی برای لذت بردن از آن را برایتان توضیح می‌دهم.</p><h4>خسوف چیست و چرا ماه قرمز می‌شود؟</h4><p>خسوف یا ماه‌گرفتگی زمانی اتفاق می‌افتد که زمین دقیقاً بین خورشید و ماه قرار می‌گیرد و سایه‌اش روی ماه می‌افتد. امشب، ماه به‌طور کامل وارد سایه زمین (اومبرا) می‌شود و اینجاست که جادوی طبیعت شروع می‌شود. برخلاف نور سفید و درخشان همیشگی ماه، در خسوف کامل، ماه به رنگ سرخ یا نارنجی مسی درمی‌آید. دلیلش؟ نور خورشید از جو زمین عبور می‌کند و به دلیل پدیده‌ای به نام <strong>پراکندگی رایلی</strong>، نور آبی پراکنده شده و نور قرمز به ماه می‌رسد. انگار ماه غروب خورشید را روی سطح خودش بازتاب می‌دهد! این رنگ سرخ و وهم‌انگیز همان چیزی است که باعث شده این پدیده را «ماه خونین» بنامند.</p><p>این خسوف نه‌تنها در ایران، بلکه در بخش‌های وسیعی از آسیا، اروپا، آفریقا و استرالیا قابل‌مشاهده است. نکته جالب اینجاست که حدود ۷۷ درصد از جمعیت جهان می‌توانند امشب این نمایش آسمانی را ببینند، و ایران یکی از بهترین نقاط برای رصد آن است.</p><h4>زمان‌بندی دقیق خسوف در ایران</h4><p>برای اینکه بتوانید برنامه‌ریزی کنید و بهترین لحظات این رویداد را از دست ندهید، زمان‌بندی دقیق خسوف به وقت تهران را اینجا آورده‌ام:</p><ul><li><p><strong>ورود ماه به نیم‌سایه (پنومبرا):</strong> ۱۸:۵۸</p></li><li><p><strong>آغاز گرفتگی جزئی:</strong> ۱۹:۵۷</p></li><li><p><strong>آغاز خسوف کامل:</strong> ۲۱:۰۰</p></li><li><p><strong>اوج خسوف (بهترین زمان برای تماشا):</strong> ۲۱:۴۱:۴۶</p></li><li><p><strong>پایان خسوف کامل:</strong> ۲۲:۲۳</p></li><li><p><strong>پایان گرفتگی جزئی:</strong> ۲۳:۲۶</p></li><li><p><strong>خروج کامل از نیم‌سایه:</strong> ۰۰:۲۵ (بامداد ۱۷ شهریور)</p></li></ul><p>کل این پدیده حدود ۳ ساعت و نیم طول می‌کشد، و بخش کامل آن (وقتی ماه کاملاً قرمز است) حدود ۸۲ دقیقه ادامه دارد. این یکی از طولانی‌ترین خسوف‌های قرن است، پس فرصت خوبی دارید که حسابی از آن لذت ببرید.</p><h4>چطور ماه خونین را تماشا کنیم؟</h4><p>خوشبختانه برای تماشای خسوف نیازی به تجهیزات خاص نیست. برخلاف خورشیدگرفتگی که به عینک‌های محافظ نیاز دارد، خسوف کامل را می‌توانید با <strong>چشم غیرمسلح</strong> ببینید و کاملاً ایمن است. با این حال، چند نکته می‌تواند تجربه شما را بهتر کند:</p><ol><li><p><strong>مکان مناسب انتخاب کنید:</strong> جایی با آسمان صاف و بدون آلودگی نوری، مثل مناطق مرتفع یا خارج از شهر، بهترین انتخاب است. اگر در شهر هستید، پشت‌بام یا پارکی با دید باز به افق شرقی هم کارتان را راه می‌اندازد.</p></li><li><p><strong>دوربین یا تلسکوپ (اختیاری):</strong> اگر دوربین دوچشمی یا تلسکوپ دارید، می‌توانید جزئیات سطح ماه و تغییرات رنگش را بهتر ببینید. اما همان‌طور که گفتم، چشم غیرمسلح هم کافی است.</p></li><li><p><strong>عکاسی از ماه خونین:</strong> اگر دوست دارید این لحظه را ثبت کنید، از یک دوربین با قابلیت تنظیم دستی استفاده کنید. تنظیمات پیشنهادی: ایزو ۲۰۰–۸۰۰، دیافراگم f/5.6 تا f/8، و سرعت شاتر متناسب با نور محیط. حتماً از سه‌پایه استفاده کنید تا عکس‌ها تار نشود. برای ثبت تغییرات رنگ، چند عکس در بازه‌های زمانی مختلف بگیرید.</p></li><li><p><strong>لباس مناسب و صبر:</strong> با توجه به اینکه این رویداد چند ساعت طول می‌کشد و در شب اتفاق می‌افتد، لباس گرم بپوشید و کمی صبر به خرج دهید. زیبایی خسوف در روند آرام و تدریجی آن است.</p></li></ol><h4>چرا این خسوف خاص است؟</h4><p>این خسوف چند ویژگی خاص دارد که آن را به یک رویداد نجومی ویژه تبدیل کرده:</p><ul><li><p><strong>مدت‌زمان طولانی:</strong> ۸۲ دقیقه خسوف کامل، فرصتی عالی برای تماشا و عکاسی است.</p></li><li><p><strong>رؤیت‌پذیری در ایران:</strong> تمام مراحل خسوف از همه نقاط ایران قابل‌مشاهده است، که این خودش یک امتیاز بزرگ است.</p></li><li><p><strong>نادر بودن:</strong> به گفته کارشناسان، این یکی از نادرترین خسوف‌های قرن است و مشابه آن تا چند سال دیگر (حدود ۷ سال) در ایران دیده نمی‌شود.</p></li><li><p><strong>نزدیکی به حضیض ماه:</strong> این خسوف فقط ۳ روز قبل از رسیدن ماه به نزدیک‌ترین نقطه به زمین (حضیض) رخ می‌دهد، به همین دلیل ماه کمی بزرگ‌تر و درخشان‌تر به نظر می‌رسد.</p></li></ul><h4>کمی حس و حال کیهانی</h4><p>ماه همیشه برای ما انسان‌ها چیزی بیشتر از یک جرم آسمانی بوده است. از داستان‌های عاشقانه و شعرهای حافظ گرفته تا افسانه‌های قدیمی درباره ماه‌گرفتگی، این پدیده‌ها همیشه حس کنجکاوی و شگفتی ما را برانگیخته‌اند. امشب وقتی به ماه سرخ نگاه می‌کنید، لحظه‌ای به عظمت کیهان و جای ما در این دنیای بزرگ فکر کنید. این نمایش طبیعت، یادآوری است که چقدر دنیای ما پر از شگفتی‌های کوچک و بزرگ است.</p><h4>نکات نهایی</h4><ul><li><p>اگر هوا ابری بود، ناامید نشوید. گاهی ابرها برای لحظاتی کنار می‌روند و می‌توانید بخشی از خسوف را ببینید.</p></li><li><p>این رویداد برای همه سنین مناسب است، پس می‌توانید با خانواده یا دوستانتان این تجربه را به اشتراک بگذارید.</p></li><li><p>اگر عکسی از ماه خونین گرفتید، آن را در شبکه‌های اجتماعی با هشتگ #ماه_خونین یا #خسوف_۱۴۰۴ به اشتراک بگذارید و حس و حالتان را با دیگران شریک شوید.</p></li></ul><p>امشب، ساعت ۲۱:۴۱، به آسمان نگاه کنید و از این نمایش کیهانی لذت ببرید. ماه خونین منتظر شماست!</p>]]></description><guid isPermaLink="false">37</guid><pubDate>Sun, 07 Sep 2025 11:07:00 +0000</pubDate></item><item><title>&#x62F;&#x633;&#x62A;&#x648;&#x631; NOP: &#x633;&#x627;&#x62F;&#x647;&#x200C;&#x62A;&#x631;&#x6CC;&#x646; &#x648; &#x67E;&#x6CC;&#x686;&#x6CC;&#x62F;&#x647;&#x200C;&#x62A;&#x631;&#x6CC;&#x646; &#x62F;&#x633;&#x62A;&#x648;&#x631; &#x67E;&#x631;&#x62F;&#x627;&#x632;&#x646;&#x62F;&#x647;</title><link>https://sinajalalvandi.ir/blog/scientific-and-general/%D8%AF%D8%B3%D8%AA%D9%88%D8%B1-nop-%D8%B3%D8%A7%D8%AF%D9%87%E2%80%8C%D8%AA%D8%B1%DB%8C%D9%86-%D9%88-%D9%BE%DB%8C%DA%86%DB%8C%D8%AF%D9%87%E2%80%8C%D8%AA%D8%B1%DB%8C%D9%86-%D8%AF%D8%B3%D8%AA%D9%88%D8%B1-%D9%BE%D8%B1%D8%AF%D8%A7%D8%B2%D9%86%D8%AF%D9%87-r36/</link><description><![CDATA[
<p><img src="https://sinajalalvandi.ir/uploads/monthly_2025_09/processor-logo-icon_617585-3376.png.4c2de9df594aa1f2b08a2361e3cb2d4a.png" /></p>
<p>اگر به دنیای برنامه‌نویسی و معماری پردازنده‌ها علاقه دارید، حتماً با اصطلاح NOP آشنا شده‌اید یا دست‌کم نام آن را شنیده‌اید. این دستور کوچک که مخفف "No Operation" است، در نگاه اول ممکن است بی‌فایده به نظر برسد، اما در واقعیت نقش‌های مهم و جالبی در دنیای محاسبات دارد</p><h2>NOP چیست؟</h2><p>دستور NOP به سادگی یک دستور است که هیچ کاری انجام نمی‌دهد. آن را می‌توان "عملیات خالی" یا "دستور تهی" ترجمه کرد. وقتی پردازنده این دستور را اجرا می‌کند، تنها کاری که انجام می‌دهد این است که شمارنده برنامه (Program Counter) را یک واحد جلو می‌برد و به دستور بعدی می‌رود. هیچ رجیستری تغییر نمی‌کند، هیچ محاسبه‌ای صورت نمی‌گیرد، و هیچ داده‌ای جابه‌جا نمی‌شود و به واقع یک سیکل خالی ایجاد میکند.</p><p>در اکثر معماری‌های پردازنده، NOP معمولاً یک بایت یا چند بایت فضا اشغال می‌کند. برای مثال، در معماری x86، دستور NOP کد عملیاتی 0x90 دارد و تنها یک بایت حافظه اشغال می‌کند.</p><h4>چرا به دستوری نیاز داریم که هیچ کاری نکند؟</h4><p>این سؤال طبیعی است که چرا طراحان پردازنده زحمت تعریف کردن دستوری را کشیده‌اند که هیچ کاری انجام نمی‌دهد. در ادامه به دلایل مهم استفاده از NOP می‌پردازیم.</p><h4>1. تراز کردن کد (Code Alignment)</h4><p>یکی از کاربردهای اصلی NOP در تراز کردن کد است. پردازنده‌های مدرن بهترین عملکرد را زمانی دارند که کد در مرزهای خاصی از حافظه قرار گیرد. برای مثال، ممکن است عملکرد بهتر باشد اگر تابع‌ها در آدرس‌هایی قرار گیرند که بر ۱۶ بخش‌پذیر باشند.</p><pre spellcheck="" class="ipsCode language-plaintext" data-language="‏متن ساده ‏"><code>; مثال تراز کردن با NOP
my_function:
    mov eax, 1
    add eax, 2
    nop          ; برای تراز کردن
    nop
    ret

aligned_function:  ; این تابع در مرز مناسب قرار دارد
    mov ebx, 5
    sub ebx, 1
    ret</code></pre><h4>2. زمان‌بندی و تأخیر (Timing and Delay)</h4><p>در برخی موارد، به‌ویژه در برنامه‌نویسی سیستم‌های تعبیه‌شده، نیاز به ایجاد تأخیرهای کوچک وجود دارد. NOP راهی ساده برای ایجاد چنین تأخیری است:</p><pre spellcheck="" class="ipsCode language-plaintext" data-language="‏متن ساده ‏"><code>; مثال ایجاد تأخیر کوتاه
output_to_port:
    out 0x80, al    ; خروجی به پورت
    nop             ; تأخیر کوتاه
    nop             ; برای اطمینان از پردازش
    nop
    in al, 0x81     ; خواندن از پورت دیگر</code></pre><h4>3. جایگزینی دستورات (Instruction Replacement)</h4><p>در فرآیند دیباگ کردن یا وصله‌گذاری نرم‌افزار، گاهی نیاز است دستوری را غیرفعال کنیم بدون اینکه ساختار کلی برنامه تغییر کند. NOP برای این منظور بسیار مناسب است:</p><pre spellcheck="" class="ipsCode language-plaintext" data-language="‏متن ساده ‏"><code>; قبل از وصله
problematic_instruction:
    call dangerous_function  ; این دستور مشکل دارد

; بعد از وصله
problematic_instruction:
    nop                      ; دستور مشکل‌دار غیرفعال شد
    nop
    nop
    nop
    nop                      ; تعداد NOP برابر با اندازه دستور اصلی</code></pre><h4>4. بهینه‌سازی pipeline</h4><p>پردازنده‌های مدرن از تکنیک pipeline استفاده می‌کنند تا چندین دستور را همزمان در مراحل مختلف اجرا کنند. گاهی NOP به عنوان "حباب" در pipeline عمل می‌کند و به حل تداخل‌های داده‌ای کمک می‌کند.</p><h3>انواع مختلف NOP</h3><p>جالب است بدانید که NOP تنها یک دستور نیست، بلکه خانواده‌ای از دستورات است:</p><h4>NOP تک‌بایتی</h4><pre spellcheck="" class="ipsCode language-plaintext" data-language="‏متن ساده ‏"><code>nop    ; کد 0x90 در x86</code></pre><h4>NOP چندبایتی</h4><p>در معماری‌های مدرن، NOP‌های چندبایتی نیز وجود دارند:</p><pre spellcheck="" class="ipsCode language-plaintext" data-language="‏متن ساده ‏"><code>; NOP دوبایتی در x86
0x66 0x90

; NOP سه‌بایتی
0x0F 0x1F 0x00

; NOP چهاربایتی
0x0F 0x1F 0x40 0x00</code></pre><h4>NOP در زبان‌های برنامه‌نویسی سطح بالا</h4><p>حتی در زبان‌های سطح بالا نیز مفهوم NOP وجود دارد، اگرچه معمولاً به صراحت از این اصطلاح استفاده نمی‌شود:</p><p>در پایتون:</p><pre spellcheck="" class="ipsCode language-python" data-language="Python"><code>
if condition:
    pass  # معادل NOP

# در C++
if (condition) {
    ; // دستور خالی - معادل NOP
}</code></pre><p>در Rust:</p><pre spellcheck="" class="ipsCode language-rust" data-language="Rust"><code>
if condition {
    // هیچ کد خاصی - کامپایلر ممکن است NOP تولید کند
}

// یا به صراحت
unsafe {
    std::arch::asm!("nop");
}</code></pre><h4>تأثیر NOP بر عملکرد</h4><p>ممکن است فکر کنید NOP هیچ تأثیری بر عملکرد ندارد، اما این تصور کاملاً درست نیست. هر NOP:</p><ul><li><p>زمان اجرا می‌برد (معمولاً یک چرخه ساعت)</p></li><li><p>فضای حافظه اشغال می‌کند</p></li><li><p>بر cache instruction تأثیر می‌گذارد</p></li></ul><p>بنابراین استفاده بی‌رویه از NOP می‌تواند عملکرد برنامه را کاهش دهد.</p><h3>کاربردهای پیشرفته NOP</h3><h4>1. Side-Channel Attack Prevention</h4><p>در امنیت سیستم‌ها، NOP گاهی برای جلوگیری از حملات تایمینگ استفاده می‌شود:</p><pre spellcheck="" class="ipsCode language-plaintext" data-language="‏متن ساده ‏"><code>secure_compare:
    ; مقایسه امن با زمان ثابت
    cmp al, bl
    jne not_equal
    nop
    nop
    jmp end_compare
not_equal:
    nop
    nop
end_compare:
    ret</code></pre><h4>2. ROP Chain Breaking</h4><p>در امنیت، NOP می‌تواند برای شکستن ROP chain‌ها استفاده شود:</p><pre spellcheck="" class="ipsCode language-plaintext" data-language="‏متن ساده ‏"><code>; قرار دادن NOP برای مختل کردن ROP gadget‌ها
function_start:
    nop
    pop eax
    nop
    ret</code></pre><h4>NOP در معماری‌های مختلف</h4><p>هر معماری پردازنده NOP خود را دارد:</p><ul><li><p style="text-align:right;"><strong>x86/x64</strong>: 0x90</p></li><li><p style="text-align:right;"><strong>ARM</strong>: 0x00000000 (mov r0, r0)</p></li><li><p style="text-align:right;"><strong>RISC-V</strong>: 0x00000013 (addi x0, x0, 0)</p></li><li><p style="text-align:right;"><strong>MIPS</strong>: 0x00000000</p></li></ul><h4>نتیجه‌گیری</h4><p>دستور NOP نمونه‌ای عالی از اصل "سادگی در پیچیدگی" است. این دستور به ظاهر ساده، نقش‌های مهمی در بهینه‌سازی، امنیت، و عملکرد سیستم‌ها ایفا می‌کند. درک صحیح از NOP و کاربردهای آن، به برنامه‌نویسان کمک می‌کند تا کد بهتر و کارآمدتری بنویسند.</p><p>در دنیای امروز که عملکرد و امنیت اهمیت فراوانی دارند، حتی "هیچ‌کاری نکردن" نیز هنری است که باید به درستی فرا گرفته شود. NOP یادآور این نکته است که گاهی قدرت واقعی در سادگی نهفته است.</p>]]></description><guid isPermaLink="false">36</guid><pubDate>Sun, 07 Sep 2025 10:59:00 +0000</pubDate></item><item><title>&#x686;&#x627;&#x67E; &#x648; &#x62D;&#x631;&#x648;&#x641; &#x686;&#x6CC;&#x646;&#x6CC; &#x6A9;&#x62A;&#x627;&#x628; &#x648; &#x631;&#x648;&#x632;&#x646;&#x627;&#x645;&#x647; &#x62F;&#x631; &#x62F;&#x647;&#x647; 40 &#x648; 50</title><link>https://sinajalalvandi.ir/blog/scientific-and-general/%DA%86%D8%A7%D9%BE-%D9%88-%D8%AD%D8%B1%D9%88%D9%81-%DA%86%DB%8C%D9%86%DB%8C-%DA%A9%D8%AA%D8%A7%D8%A8-%D9%88-%D8%B1%D9%88%D8%B2%D9%86%D8%A7%D9%85%D9%87-%D8%AF%D8%B1-%D8%AF%D9%87%D9%87-40-%D9%88-50-r31/</link><description><![CDATA[
<p><img src="https://sinajalalvandi.ir/uploads/monthly_2025_07/timeline.jpg.4f24bda890f7a8d1f392dfb21c5faa81.jpg" /></p>
<p>در دهه‌های ۱۳۴۰ و ۱۳۵۰ خورشیدی، روزنامه‌ها نقش پررنگی در زندگی فرهنگی و سیاسی مردم ایران داشتن؛ اونم تو دورانی که نه خبری از کامپیوتر بود، نه چاپگر لیزری، نه حتی نرم‌افزارهای طراحی صفحه. با این حال، روزنامه‌ها هر روز صبح می‌رسیدن؛ با ستون‌های مرتب و عکس‌هایی که کیفیت‌شون با استانداردهای اون زمان، واقعاً چشم‌گیر بود. اما سؤال اصلی اینه: چطور این کار انجام می‌شد؟ تو این مقاله، قراره نگاهی بندازیم به روند تولید روزنامه تو اون سال‌ها؛ از چاپ متن گرفته تا درج عکس، با همه‌ی ابزارها و مهارت‌هایی که تو دنیای تماماً آنالوگ دهه ۴۰ و ۵۰ شمسی، باعث می‌شدن چیزی به اسم «روزنامه» هر روز متولد بشه.</p><p style="text-align:center;"><a href="https://sinajalalvandi.ir/uploads/monthly_2025_07/typing.jpg.79869d6f86ef5b70edd25e3326f50248.jpg" class="ipsAttachLink ipsAttachLink_image ipsRichText__align--block" data-fileid="28" data-fileext="jpg" rel=""><img class="ipsImage ipsImage_thumbnailed" data-fileid="28" src="https://sinajalalvandi.ir/uploads/monthly_2025_07/typing.thumb.jpg.f03bbe467163e4f35d4725d4ffa10b16.jpg" alt="typing.jpg" width="1000" height="563" loading="lazy"></a></p><h3>حروف‌چینی: تایپ بدون کیبورد</h3><p>اولین مرحله‌ی تولید هر روزنامه، حروف‌چینی بود؛ همون کاری که امروز با یه لپ‌تاپ و کیبورد تو چند دقیقه انجامش می‌دیم. اما اون موقع همه‌چی دستی و مکانیکی بود.</p><h4>حروف‌چینی دستی (چاپ سربی)</h4><p>تو ساده‌ترین حالت، حروف‌چینی یعنی واقعاً «چیدن حروف». هر حرف، یه قطعه‌ی کوچیک فلزی (معمولاً سربی) بود که اپراتورها با دست می‌چیدن کنار هم تا یه کلمه یا جمله ساخته شه. این حروف روی یه قالب فلزی (به‌اسم فرم) چیده می‌شدن و آماده چاپ می‌شدن. کار زمان‌بر و طاقت‌فرسایی بود، ولی تو نبود گزینه‌ی سریع‌تر، همین روش استاندارد صنعت چاپ محسوب می‌شد.</p><p style="text-align:center;"><a href="https://sinajalalvandi.ir/uploads/monthly_2025_07/LinotypeModel1.jpg.d52a74dac7f7e40a3f3eb960cfd0c5a6.jpg" class="ipsAttachLink ipsAttachLink_image ipsRichText__align--block" data-fileid="29" data-fileext="jpg" rel=""><img class="ipsImage ipsImage_thumbnailed" data-fileid="29" src="https://sinajalalvandi.ir/uploads/monthly_2025_07/LinotypeModel1.thumb.jpg.796abb04155f48c05fabd292ee636e94.jpg" alt="Linotype+Model+1.jpg" width="562" height="750" loading="lazy"></a></p><p style="text-align:center;">یک دستگاه Linotype</p><h4>دستگاه‌های حروف‌چینی (Linotype)</h4><p>کم‌کم دستگاه‌هایی مثل Linotype وارد بازی شدن. اپراتور متن رو تایپ می‌کرد، دستگاه خودش حروف رو می‌ساخت و کنار هم می‌چید و خروجی‌اش یه نوار فلزی برجسته از متن بود. این نوار مستقیماً تو چاپ استفاده می‌شد. سرعت کار نسبت به حالت دستی خیلی بیشتر بود.</p><h3>عکس در روزنامه: ماجرای کلیشه‌سازی</h3><p>گذاشتن عکس تو روزنامه‌های اون دوره خودش ماجرایی مفصل داشت. چون برعکس متن که با قالب فلزی چاپ می‌شد، عکس با یه تکنیک کاملاً متفاوت وارد صفحه می‌شد.</p><p style="text-align:center;"><img class="ipsImage ipsRichText__align--block" data-fileid="30" src="https://sinajalalvandi.ir/uploads/monthly_2025_07/Halftone-Photoshop-Action-03.webp.966804b0a4f04ee2ff5caddd9c1458f3.webp" alt="Halftone-Photoshop-Action-03.webp" width="960" height="640" loading="lazy"></p><p style="text-align:center;">نمونه ای از تصویر هافتون شده</p><h4>هافتون‌سازی و کلیشه</h4><p>اول باید تصویر تبدیل می‌شد به نسخه‌ای قابل چاپ؛ چون چاپ با جوهر سیاه انجام می‌شد، باید تصویر به صورت نقطه‌نقطه (هافتون) در می‌اومد تا سایه‌روشن‌ها شبیه‌سازی بشه. این کار با دوربین‌های خاص و نگاتیو انجام می‌شد. بعدش تصویر نقطه‌دار رو منتقل می‌کردن روی یه ورق فلزی (معمولاً آلومینیوم یا روی) که بهش می‌گفتن کلیشه یا زینک.</p><h4>اسیدکاری کلیشه</h4><p>حالا نوبت اسیدکاری بود. قسمت‌هایی از فلز که قرار نبود جوهر بگیرن، با اسید خورده می‌شدن و بخش‌های برجسته باقی می‌موندن. این کلیشه‌ها می‌تونستن جوهر بگیرن و عکس رو چاپ کنن.</p><h3>طراحی صفحه: چسب و قیچی</h3><p>بعد از آماده شدن کلیشه‌های متن و عکس، نوبت می‌رسید به طراحی صفحه. این کار یه ترکیب از مهارت فنی و خلاقیت بود. طراح‌ها با برش و چسبوندن تکه‌ها روی یه ماکت، چیدمان نهایی صفحه رو می‌ساختن. گاهی هم برای دقت بیشتر، از کاغذ شفاف استفاده می‌شد تا جای دقیق هر عنصر مشخص شه. همه‌چی با دست انجام می‌شد، بدون حتی یک پیکسل دیجیتال.</p><p style="text-align:center;"><a href="https://sinajalalvandi.ir/uploads/monthly_2025_07/--.jpg.5019a2995c608937584d92da42df63e3.jpg" class="ipsAttachLink ipsAttachLink_image ipsRichText__align--block" data-fileid="31" data-fileext="jpg" rel=""><img class="ipsImage ipsImage_thumbnailed" data-fileid="31" src="https://sinajalalvandi.ir/uploads/monthly_2025_07/--.thumb.jpg.0e3e676a6cbdaeb2161ed951175dbaa2.jpg" alt="انواع-دستگاه-لترپرس.jpg" width="1000" height="562" loading="lazy"></a></p><p style="text-align:center;">دستگاه لترپرس</p><h3>چاپ: لترپرس یا افست؟</h3><p>وقتی صفحه نهایی آماده می‌شد، چاپ آغاز می‌شد. بسته به تجهیزات چاپخانه، از یکی از دو روش اصلی استفاده می‌کردن:</p><h4>چاپ لترپرس</h4><p>تو این روش سنتی، فرم‌های فلزی آغشته به جوهر بودن و مستقیم روی کاغذ فشار داده می‌شدن. روش قدیمی‌ای بود ولی کیفیت قابل‌قبولی داشت.</p><h4>چاپ افست</h4><p>توی افست، اول تصویر روی یه لاستیک مخصوص منتقل می‌شد و بعدش از اون روی کاغذ. این روش سریع‌تر بود و کیفیت بالاتری داشت، مخصوصاً برای چاپ رنگی یا تیراژ بالا.</p><h3>حرف آخر</h3><p>تولید روزنامه تو دهه‌های ۴۰ و ۵۰ شمسی، یه ترکیب جالب از هنر، مهارت و تکنولوژی مکانیکی بود. از حروف‌چینی دستی گرفته تا کلیشه‌سازی و طراحی صفحه با دست، همه‌ی این کارها در نهایت منجر به یه روزنامه می‌شد که صبح فردا تو دکه‌ها آماده بود. شاید امروز با یه لپ‌تاپ و اینترنت بتونیم یه نشریه آنلاین تو چند ساعت بالا بیاریم، ولی نباید یادمون بره که همه‌ی این راحتی‌ها، نتیجه‌ی راهی هست که اون نسل با زحمت و دقت طی کرده. واقعاً باید کلاه از سر برداشت جلوی اون‌هایی که با سرب و جوهر، دنیای رسانه رو ساختن.</p>]]></description><guid isPermaLink="false">31</guid><pubDate>Fri, 18 Jul 2025 20:48:20 +0000</pubDate></item><item><title>&#x633;&#x646;&#x62F;&#x631;&#x648;&#x645; &#x627;&#x6CC;&#x645;&#x67E;&#x627;&#x633;&#x62A;&#x631; &#x628;&#x6CC;&#x646; &#x628;&#x631;&#x646;&#x627;&#x645;&#x647;&#x200C;&#x646;&#x648;&#x6CC;&#x633;&#x200C;&#x647;&#x627; &#x648; &#x645;&#x647;&#x646;&#x62F;&#x633;&#x200C;&#x647;&#x627;&#x6CC; &#x646;&#x631;&#x645;&#x200C;&#x627;&#x641;&#x632;&#x627;&#x631;: &#x686;&#x631;&#x627; &#x647;&#x645;&#x6CC;&#x634;&#x647; &#x641;&#x6A9;&#x631; &#x645;&#x6CC;&#x200C;&#x6A9;&#x646;&#x6CC;&#x645; &#x628;&#x647; &#x627;&#x646;&#x62F;&#x627;&#x632;&#x647; &#x6A9;&#x627;&#x641;&#x6CC; &#x62E;&#x648;&#x628; &#x646;&#x6CC;&#x633;&#x62A;&#x6CC;&#x645;&#x61F;</title><link>https://sinajalalvandi.ir/blog/scientific-and-general/%D8%B3%D9%86%D8%AF%D8%B1%D9%88%D9%85-%D8%A7%DB%8C%D9%85%D9%BE%D8%A7%D8%B3%D8%AA%D8%B1-%D8%A8%DB%8C%D9%86-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87%E2%80%8C%D9%86%D9%88%DB%8C%D8%B3%E2%80%8C%D9%87%D8%A7-%D9%88-%D9%85%D9%87%D9%86%D8%AF%D8%B3%E2%80%8C%D9%87%D8%A7%DB%8C-%D9%86%D8%B1%D9%85%E2%80%8C%D8%A7%D9%81%D8%B2%D8%A7%D8%B1-%DA%86%D8%B1%D8%A7-%D9%87%D9%85%DB%8C%D8%B4%D9%87-%D9%81%DA%A9%D8%B1-%D9%85%DB%8C%E2%80%8C%DA%A9%D9%86%DB%8C%D9%85-%D8%A8%D9%87-%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%D9%87-%DA%A9%D8%A7%D9%81%DB%8C-%D8%AE%D9%88%D8%A8-%D9%86%DB%8C%D8%B3%D8%AA%DB%8C%D9%85%D8%9F-r19/</link><description><![CDATA[
<p><img src="https://sinajalalvandi.ir/uploads/monthly_2025_03/Somerville-Stories_Imposter-Syndrome.jpg.18465cdd0601d193a2fcf52a4082e914.jpg" /></p>
<p>سندروم ایمپاستر یا همون حس جعل هویت، یه موضوع خیلی رایج بین برنامه‌نویس‌ها و مهندس‌های نرم‌افزاره که شاید خودمون هم گاهی نفهمیم داریم باهاش دست‌وپنجه نرم می‌کنیم. فکرش رو بکن: ساعت‌ها کد زدی، پروژه رو به موقع تحویل دادی و حتی تونستی باگ‌های پیچیده رو حل کنی، ولی هنوز یه صدای کوچیک توی سرت می‌گه: «تو فقط شانسی این کار رو کردی، بالاخره یه روز همه می‌فهمن که تو به اندازه کافی خوب نیستی.» اگه این حس برات آشناست، بدون که تنها نیستی. توی این مقاله قراره با هم نگاه عمیق‌تری به سندروم ایمپاستر بندازیم، ببینیم چرا توی دنیای برنامه‌نویسی اینقدر شایعه و چطور می‌تونیم باهاش کنار بیایم یا حتی ازش به نفع خودمون استفاده کنیم.</p><h4>سندروم ایمپاستر چیه و چرا برنامه‌نویس‌ها رو هدف گرفته؟</h4><p>سندروم ایمپاستر یه حس روان‌شناختیه که باعث می‌شه آدما موفقیت‌هاشون رو به شانس، زمان‌بندی خوب یا حتی اشتباه بقیه نسبت بدن، نه به توانایی و تلاش خودشون. حالا چرا توی دنیای برنامه‌نویسی و مهندسی نرم‌افزار اینقدر این حس قویه؟ یه دلیلش اینه که این حوزه همیشه در حال تغییره. یه روز داری با یه فریم‌ورک جدید کار می‌کنی، فردا یه تکنولوژی دیگه میاد که انگار همه‌چیز رو از نو باید یاد بگیری. این سرعت تغییرات باعث می‌شه خیلی از برنامه‌نویس‌ها فکر کنن که همیشه یه پله عقب‌تر از بقیه‌ان.</p><p>یه چیز دیگه هم هست: فرهنگ مقایسه توی این صنعت. توی شبکه‌های اجتماعی مثل توییتر یا لینکدین، مدام می‌بینیم که فلان برنامه‌نویس یه پروژه خفن رو توی دو روز تموم کرده یا یه نفر دیگه توی ۲۵ سالگی مدیر فنی یه شرکت بزرگ شده. این مقایسه‌ها باعث می‌شه خودمون رو زیر سؤال ببریم و فکر کنیم که «من چرا هنوز اونجا نیستم؟»</p><h4>نشانه‌های سندروم ایمپاستر توی زندگی یه برنامه‌نویس</h4><p>شاید برات پیش اومده که یه پروژه رو با موفقیت تموم کنی، ولی به جای اینکه به خودت افتخار کنی، بشینی فکر کنی که «اگه بیشتر وقت گذاشته بودم، بهتر نمی‌شد؟» یا مثلاً موقع کد زدن، مدام از خودت بپرسی که «اگه همکارم این کد رو ببینه، فکر نمی‌کنه خیلی مبتدی‌ام؟» اینا همشون نشونه‌های سندروم ایمپاستره. بیایم چند تا از این نشانه‌ها رو با هم مرور کنیم:</p><ul><li><p><strong>ترس از لو رفتن:</strong> همیشه فکر می‌کنی که یه روز بقیه می‌فهمن تو اون آدم باهوشی که فکر می‌کنن نیستی.</p></li><li><p><strong>کم اهمیت دونستن موفقیت‌ها:</strong> مثلاً می‌گی «این پروژه که چیزی نبود، هرکی دیگه هم بود می‌تونست انجامش بده.»</p></li><li><p><strong>فشار برای کامل بودن:</strong> اگه کدت ۱۰۰٪ بی‌نقص نباشه، حس می‌کنی شکست خوردی.</p></li><li><p><strong>خودت رو با بقیه مقایسه می‌کنی:</strong> مدام خودت رو با برنامه‌نویس‌های دیگه که به نظرت موفق‌ترن مقایسه می‌کنی و حس می‌کنی به گرد پاشون هم نمی‌رسی.</p></li></ul><h4>چرا برنامه‌نویس‌ها بیشتر درگیر این حس می‌شن؟</h4><p>یه لحظه فکر کن به محیط کار یه برنامه‌نویس: ددلاین‌های فشرده، پروژه‌های پیچیده و انتظاراتی که گاهی از واقعیت خیلی دورن. توی این موقعیت‌ها، حتی اگه کارمون رو خوب انجام بدیم، ممکنه فکر کنیم که فقط داریم ادای یه برنامه‌نویس حرفه‌ای رو درمی‌آریم. یه دلیل دیگه هم اینه که توی برنامه‌نویسی، همیشه یه راه حل «بهتر» وجود داره. مثلاً کدت کار می‌کنه، ولی یه نفر می‌گه «اگه از این الگوریتم استفاده کرده بودی، بهینه‌تر بود.» این جور بازخوردها، حتی اگه سازنده باشن، می‌تونن حس ناکافی بودن رو تقویت کنن.</p><p>یه موضوع دیگه هم هست: خیلی از برنامه‌نویس‌ها خودشون یاد گرفتن که چطور کد بزنن. این یعنی ممکنه مدرک رسمی نداشته باشن و همین باعث بشه فکر کنن که از بقیه «کمترن». در حالی که توی دنیای واقعی، مهارت و تجربه خیلی بیشتر از یه تکه کاغذ ارزش داره.</p><h4>چطور با سندروم ایمپاستر کنار بیایم؟</h4><p>حالا که فهمیدیم این حس از کجا میاد، بیایم ببینیم چطور می‌تونیم باهاش روبه‌رو بشیم. خبر خوب اینه که سندروم ایمپاستر یه چیز قابل مدیریته و حتی می‌تونه به یه نیروی مثبت تبدیل بشه. این چند تا راهکار رو امتحان کن:</p><ol><li><p><strong>موفقیت‌هات رو ثبت کن:</strong> یه دفترچه داشته باش و هر بار که یه باگ رو حل کردی، یه پروژه رو تموم کردی یا حتی یه خط کد خوب نوشتی، یادداشتش کن. این کار باعث می‌شه به مرور ببینی که چقدر توانایی داری.</p></li><li><p><strong>با بقیه حرف بزن:</strong> یه بار با همکارات یا دوستات که برنامه‌نویس هستن راجع به این حس صحبت کن. می‌بینی که خیلی‌ها همین حس رو دارن و تو تنها نیستی.</p></li><li><p><strong>کمال‌گرایی رو بذار کنار:</strong> قبول کن که هیچ کدی توی دنیا کامل نیست. مهم اینه که کار کنه و مشکل رو حل کنه.</p></li><li><p><strong>یادگیری رو بپذیر:</strong> به جای اینکه از تغییرات سریع تکنولوژی بترسی، بهش به چشم یه فرصت نگاه کن. هر چی بیشتر یاد بگیری، اعتماد به نفست بیشتر می‌شه.</p></li><li><p><strong>از مقایسه دست بکش:</strong> به جای اینکه خودت رو با بقیه مقایسه کنی، پیشرفت خودت رو نسبت به گذشته‌ات بسنج. مثلاً ببین پارسال کجا بودی و الان کجایی.</p></li></ol><h4>وقتی سندروم ایمپاستر می‌تونه مفید باشه</h4><p>باور کن یا نه، این حس گاهی می‌تونه به نفعمون باشه. مثلاً همین که همیشه دنبال بهتر شدن هستی و نمی‌خوای توی کارات کم بذاری، خودش یه نقطه قوته. خیلی از برنامه‌نویس‌های موفق می‌گن که این حس باعث شده بیشتر مطالعه کنن، کدهای بهتری بنویسن و توی کارشون پیشرفت کنن. فقط کافیه نذاری این حس کنترلت کنه و به جاش ازش به عنوان یه انگیزه استفاده کنی.</p><h4>حرف آخر: تو به اندازه کافی خوبی!</h4><p>سندروم ایمپاستر یه چیزیه که خیلی از برنامه‌نویس‌ها و مهندس‌های نرم‌افزار باهاش روبه‌رو می‌شن، ولی قرار نیست همیشه باهات بمونه. دفعه بعدی که حس کردی به اندازه کافی خوب نیستی، یه نفس عمیق بکش و به خودت یادآوری کن که همین که داری کد می‌زنی، پروژه تحویل می‌دی و هر روز یه چیز جدید یاد می‌گیری، یعنی داری راه رو درست می‌ری. دنیای برنامه‌نویسی جای آدمای باهوش و باپشتکاره، و تو قطعاً یکی از اونایی.</p>]]></description><guid isPermaLink="false">19</guid><pubDate>Sat, 29 Mar 2025 20:30:02 +0000</pubDate></item><item><title>&#x645;&#x63A;&#x632; &#x634;&#x627;&#x62A;&#x644;&#x200C;&#x647;&#x627;&#x6CC; &#x641;&#x636;&#x627;&#x6CC;&#x6CC;: &#x646;&#x6AF;&#x627;&#x647;&#x6CC; &#x639;&#x645;&#x6CC;&#x642; &#x628;&#x647; &#x633;&#x6CC;&#x633;&#x62A;&#x645;&#x200C;&#x647;&#x627;&#x6CC; &#x646;&#x631;&#x645;&#x200C;&#x627;&#x641;&#x632;&#x627;&#x631;&#x6CC; &#x648; &#x6A9;&#x627;&#x645;&#x67E;&#x6CC;&#x648;&#x62A;&#x631;&#x6CC; &#x646;&#x627;&#x633;&#x627; - &#x628;&#x62E;&#x634; &#x627;&#x648;&#x644;</title><link>https://sinajalalvandi.ir/blog/scientific-and-general/%D9%85%D8%BA%D8%B2-%D8%B4%D8%A7%D8%AA%D9%84%E2%80%8C%D9%87%D8%A7%DB%8C-%D9%81%D8%B6%D8%A7%DB%8C%DB%8C-%D9%86%DA%AF%D8%A7%D9%87%DB%8C-%D8%B9%D9%85%DB%8C%D9%82-%D8%A8%D9%87-%D8%B3%DB%8C%D8%B3%D8%AA%D9%85%E2%80%8C%D9%87%D8%A7%DB%8C-%D9%86%D8%B1%D9%85%E2%80%8C%D8%A7%D9%81%D8%B2%D8%A7%D8%B1%DB%8C-%D9%88-%DA%A9%D8%A7%D9%85%D9%BE%DB%8C%D9%88%D8%AA%D8%B1%DB%8C-%D9%86%D8%A7%D8%B3%D8%A7-%D8%A8%D8%AE%D8%B4-%D8%A7%D9%88%D9%84-r13/</link><description><![CDATA[
<p><img src="https://sinajalalvandi.ir/uploads/monthly_2025_03/shuttle.jpg.8cd06e670096b00e2e937c9a3191fb58.jpg" /></p>
<p>شاتل‌های فضایی ناسا، از کلمبیا تا آتلانتیس، فقط ماشین‌های عظیم آهنی نبودن؛ اونا یه شاهکار تکنولوژیک بودن که با قدرت ذهن بشر و چند خط کد به فضا پرواز کردن. تصور کن یه شاتل با سرعت ۲۸٬۰۰۰ کیلومتر بر ساعت دور زمین می‌گرده، توی جو مانور می‌ده و بعد با دقت روی باند فرود میاد. حالا فکر کن همه اینا با کامپیوتری انجام شده که حافظه‌اش از یه فلش USB امروزی هم کمتر بود! اینجاست که سیستم‌های نرم‌افزاری و کامپیوتری شاتل‌ها وارد داستان می‌شن: یه دنیای پیچیده از کد، سخت‌افزار و هوشمندی که هر خطاش می‌تونست یه مأموریت رو به فاجعه بکشونه.<br>توی این مقاله قراره سفری داشته باشیم به قلب این سیستم‌ها. از زبان برنامه‌نویسی خاص HAL/S که شاتل‌ها رو هدایت می‌کرد، تا کامپیوترهای قدیمی‌ای که مثل یه ارکستر هماهنگ کار می‌کردن. می‌خوام خطاهایی که نفس‌ها رو حبس کردن و درس‌هایی که ازشون گرفته شد رو باهم ببینیم. این نه فقط یه داستان فنیه، بلکه روایتی از تلاش بشر برای فتح فضاست با ابزارهایی که الان شاید ساده به نظر بیان. پس اگه کنجکاوی که بدونی چطور این غول‌های فضایی با چند خط کد زنده بودن، بیا با من همراه شو!</p><h4>کامپیوترهای GPC - ستون فقرات شاتل‌ها</h4><p style="text-align:center;"><a href="https://sinajalalvandi.ir/uploads/monthly_2025_03/supplied_space_shuttle_computer.webp.dc9803ba20c1756380ebf6ac531b1933.webp" class="ipsAttachLink ipsAttachLink_image ipsRichText__align--block" data-fileid="7" data-fileext="webp" rel=""><img class="ipsImage ipsImage_thumbnailed" data-fileid="7" src="https://sinajalalvandi.ir/uploads/monthly_2025_03/supplied_space_shuttle_computer.thumb.webp.67af6d4b5fced6ae7643edf60c5c22d2.webp" alt="supplied_space_shuttle_computer.webp" width="1000" height="500" loading="lazy"></a></p><p>هر شاتل فضایی به پنج تا کامپیوتر IBM AP-101 مجهز بود که بهشون General Purpose Computers یا GPC می‌گفتن. اینا هسته مرکزی عملیات بودن و همه‌چیز، از پرتاب و کنترل مداری تا فرود، رو مدیریت می‌کردن. حالا فکر کن هر کدوم از این کامپیوترها فقط ۱ مگابایت حافظه و قدرت پردازش ۰٫۴ میلیون دستور در ثانیه داشتن. برای مقایسه، یه لپ‌تاپ معمولی امروزی هزاران برابر قوی‌تره!<br>چهار تا از این GPCها یه برنامه مشترک به اسم PASS (Primary Avionics Software System) رو اجرا می‌کردن و مدام با هم مقایسه می‌شدن. این طراحی "redundant" یعنی اگه یکی خراب می‌شد یا اشتباه می‌کرد، بقیه می‌تونستن تشخیص بدن و کار رو ادامه بدن. پنجمی اما یه نقش خاص داشت: فقط سیستم پشتیبان (Backup Flight System یا BFS) رو اجرا می‌کرد و برای مواقع اضطراری آماده بود.<br>این کامپیوترها توی شرایط سخت فضا کار می‌کردن: تشعشع کیهانی، دمای شدید و لرزش‌های وحشتناک. با این حال، ناسا طوری اونا رو ساخته بود که حتی با این محدودیت‌ها، دقتشون از دست نره. چطور؟ جواب توی نرم‌افزارهاییه که این سخت‌افزار ساده رو به یه ماشین فضایی تبدیل کرده بود. توی بخش بعدی، زبانی که این کدها رو شکل داد رو بررسی می‌کنیم.</p><h4>HAL/S - زبان برنامه‌نویسی شاتل‌ها</h4><p>ناسا برای شاتل‌ها نمی‌تونست سراغ زبان‌های معمولی مثل فورترن یا اسمبلی بره. به جاش یه زبان اختصاصی به اسم HAL/S (High-order Assembly Language/Shuttle) طراحی کرد که دهه ۱۹۷۰ توسط شرکت Intermetrics ساخته شد. این زبان انگار برای شاتل‌ها زاده شده بود: هم قدرتمند بود، هم بهینه برای سخت‌افزار محدود GPCها.<br>HAL/S برای سیستم‌های "بلادرنگ" (real-time) طراحی شده بود، یعنی می‌تونست توی کسری از ثانیه به تغییرات واکنش نشون بده؛ چیزی که توی فضا حیاتیه. مثلاً وقتی شاتل توی جو باید زاویه‌اش رو تنظیم می‌کرد، این زبان به برنامه‌نویس‌ها اجازه می‌داد زمان‌بندی دقیق دستورات رو کنترل کنن. یه نمونه کد ساده:</p><pre spellcheck="" class="ipsCode language-plaintext" data-language="‏متن ساده ‏"><code>DCL THRUST VECTOR(3) FIXED;  
UPDATE THRUST WITH NEW_VALUES;  
SCHEDULE THRUST_ADJUST AT 0.1 SECONDS;  </code></pre><p>اینجا یه بردار رانش تعریف می‌شه، با داده‌های جدید آپدیت می‌شه و بعد توی ۰٫۱ ثانیه تنظیم می‌شه.<br>یه ویژگی دیگه HAL/S، مدیریت خطاهاش بود. اگه یه متغیر از محدوده خارج می‌شد، خودش هشدار می‌داد. این برای شاتل‌ها حیاتی بود، چون یه خطای کوچیک می‌تونست فاجعه بیاره. حجم کدها هم کم نبود: PASS حدود ۴۰۰٬۰۰۰ خط کد داشت و BFS نزدیک ۱۰۰٬۰۰۰ خط. برنامه‌نویس‌ها باید این کدها رو طوری می‌نوشتن که توی ۱ مگابایت حافظه جا بشه و کند نشه. برای همین، تست‌ها و شبیه‌سازی‌ها گاهی ماه‌ها طول می‌کشید تا مطمئن بشن همه‌چیز بی‌نقصه. اما آیا واقعاً بی‌نقص بود؟ بیایم چندتا خطای واقعی رو ببینیم.</p><h4>خطاهای نرم‌افزاری - لحظات نفس‌گیر</h4><p>هرچند سیستم شاتل‌ها خیلی دقیق بود، اما خطاها گاهی خودشون رو نشون می‌دادن. یکی از معروف‌ترینش توی اولین پرتاب شاتل (STS-1، کلمبیا، ۱۹۸۱) بود. قرار بود ۱۰ آوریل پرتاب بشه، ولی ۲۰ دقیقه قبل از بلند شدن، سیستم قفل کرد. چهار تا GPC که PASS رو اجرا می‌کردن، باید همزمان باهم sync می‌شدن، ولی یه اختلاف یک میلی‌ثانیه‌ای توی زمان‌بندی همه‌چیز رو متوقف کرد.<br>مشکل از یه "race condition" توی کد HAL/S بود. یه بخش از برنامه که زمان‌بندی رو چک می‌کرد، به این شکل بود:</p><pre spellcheck="" class="ipsCode language-plaintext" data-language="‏متن ساده ‏"><code>SYNC_CLOCKS:  
    READ MASTER_CLOCK INTO LOCAL_TIME;  
    IF LOCAL_TIME ≠ EXPECTED_TIME THEN HALT;  </code></pre><p>یه تأخیر ریز توی انتقال داده باعث شد LOCAL_TIME مقدار قدیمی بخونه و سیستم فکر کنه یه جای کار خرابه. ناسا دو روز پرتاب رو عقب انداخت و با اضافه کردن یه بافر زمانی، مشکل رو حل کرد. این خطا نشون داد که حتی با تست‌های گسترده، شرایط نادر می‌تونن غافلگیرکننده باشن.<br>یه مورد دیگه توی STS-9 (۱۹۸۳) بود. وقتی شاتل کلمبیا برای فرود آماده می‌شد، دو تا GPC به‌خاطر مشکل سخت‌افزاری (شاید تشعشع کیهانی) از کار افتادن. BFS فعال شد، ولی یه باگ باعث شد یه جت کنترلی (RCS) بیش از حد روشن بمونه و شاتل یه چرخش ناخواسته بکنه. مشکل از یه متغیر بود که توی سوئیچ به BFS درست ریست نشده بود. خلبان‌ها با مهارتشون فرود رو نجات دادن، ولی ناسا بعدش کد BFS رو آپدیت کرد.<br>این خطاها درس‌های بزرگی داشتن: تست‌ها باید سخت‌گیرانه‌تر بشن و حتی سیستم‌های پشتیبان هم نیاز به دقت دارن.</p><h4>BFS - خط دفاعی شاتل‌ها</h4><p>Backup Flight System یا BFS مثل یه سپر اضطراری بود. اگه PASS به هر دلیلی از کار می‌افتاد، BFS با ۱۰۰٬۰۰۰ خط کدش کنترل رو می‌گرفت. این سیستم فقط برای کارهای ضروری طراحی شده بود: نویگیشن پایه، کنترل موتورها و فرود امن.<br>BFS توسط تیمی جدا از PASS نوشته شده بود تا باگ‌های مشترک نداشته باشن. حتی از نسخه کمی متفاوت HAL/S استفاده می‌کرد. توی کابین خلبان، یه دکمه به اسم "BFS Engage" بود که با زدنش، GPC پنجم فعال می‌شد و شاتل رو نجات می‌داد.<br>توی STS-9 دیدیم که BFS چطور وارد عمل شد، ولی همون باگ جت کنترلی نشون داد که سادگی BFS هم محدودیت‌هایی داره. ناسا بعدش مطمئن شد که هر وقت BFS فعال می‌شه، همه متغیرها از نو مقداردهی بشن. این سیستم یه فلسفه مهم رو یادآوری کرد: توی فضا، گاهی ساده نگه داشتن بهترین راه‌حله.</p><h4>تست‌ها و شبیه‌سازی‌ها - نبرد با ناشناخته‌ها</h4><h4><a href="https://sinajalalvandi.ir/uploads/monthly_2025_03/NASA-SAIL-6-of-24.jpg.a15f9139682f7e2f046c0e9cd84163ac.jpg" class="ipsAttachLink ipsAttachLink_image ipsRichText__align--block" data-fileid="8" data-fileext="jpg" rel=""><img class="ipsImage ipsImage_thumbnailed" data-fileid="8" src="https://sinajalalvandi.ir/uploads/monthly_2025_03/NASA-SAIL-6-of-24.thumb.jpg.a1ca9518deb585e7f9d55ce9adf8cf1d.jpg" alt="NASA-SAIL-6-of-24.jpg" width="1000" height="523" loading="lazy"></a></h4><p>ناسا نمی‌تونست ریسک کنه. برای همین قبل از هر مأموریت، هزاران ساعت شبیه‌سازی انجام می‌داد. توی مرکز Shuttle Avionics Integration Laboratory (SAIL) توی هیوستون، یه نسخه کامل از شاتل ساخته شده بود که همه سناریوها رو تست می‌کرد: از پرتاب توی طوفان خورشیدی تا فرود توی شرایط بحرانی.<br>هر خط کد بارها اجرا می‌شد تا مطمئن بشن هیچ باگی نیست. ناسا از رویکرد "correct-by-construction" استفاده می‌کرد، یعنی کدها رو طوری می‌نوشتن که از اول درست باشن. اما همون‌طور که توی STS-1 دیدیم، بعضی خطاها فقط توی لحظه واقعی خودشون رو نشون می‌دادن.<br>تست‌ها انقدر دقیق بود که گاهی یه مأموریت ماه‌ها عقب می‌افتاد. مثلاً قبل از STS-1، ناسا ده ها هزار بار پرتاب رو شبیه‌سازی کرد، ولی بازم اون باگ زمان‌بندی غافلگیرشون کرد. بعد از هر خطا، سناریوهای جدید به تست‌ها اضافه می‌شد تا دیگه تکرار نشه. این دقت باعث شد توی ۱۳۵ مأموریت شاتل، هیچ فاجعه‌ای مستقیماً به‌خاطر نرم‌افزار رخ نده.</p><h4>مقایسه با امروز - شاتل‌ها در برابر فضاپیما های امروزی</h4><p>حالا که شاتل‌ها بازنشسته شدن، فضاپیماهای مدرن مثل Crew Dragon اسپیس‌ایکس جای اونا رو گرفتن. تفاوتشون با شاتل‌ها مثل مقایسه یه ماشین‌حساب با یه سوپرکامپیوتره. Crew Dragon از پردازنده‌های چند هسته‌ای با گیگابایت‌ها حافظه استفاده می‌کنه و نرم‌افزارش با زبان‌های مدرن مثل C++ نوشته شده.<br>شاتل‌ها با ۱ مگابایت حافظه و HAL/S کار می‌کردن، ولی این محدودیت باعث شده بود ناسا روی دقت و بهینه‌سازی تمرکز کنه. توی سیستم‌های مدرن، قدرت پردازش اجازه می‌ده کدها پیچیده‌تر باشن و حتی هوش مصنوعی برای تصمیم‌گیری استفاده بشه. اما یه تفاوت بزرگ اینه که شاتل‌ها برای هر مأموریت دستی تنظیم می‌شدن، در حالی که فضاپیماهای جدید مثل Crew Dragon خودکارترن.<br>با این حال، شاتل‌ها یه میراث بزرگ گذاشتن: نشون دادن که با منابع کم هم می‌شه کارهای بزرگ کرد. این فلسفه هنوز توی طراحی سیستم‌های فضایی دیده می‌شه.</p><p></p>]]></description><guid isPermaLink="false">13</guid><pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate></item><item><title>&#x645;&#x633;&#x626;&#x644;&#x647; &#x6A9;&#x648;&#x644;&#x627;&#x62A;&#x632;: &#x645;&#x639;&#x645;&#x627;&#x6CC;&#x6CC; &#x631;&#x6CC;&#x627;&#x636;&#x6CC; &#x6A9;&#x647; &#x630;&#x647;&#x646;&#x200C;&#x647;&#x627; &#x631;&#x627; &#x628;&#x647; &#x686;&#x627;&#x644;&#x634; &#x645;&#x6CC;&#x200C;&#x6A9;&#x634;&#x62F;</title><link>https://sinajalalvandi.ir/blog/scientific-and-general/%D9%85%D8%B3%D8%A6%D9%84%D9%87-%DA%A9%D9%88%D9%84%D8%A7%D8%AA%D8%B2-%D9%85%D8%B9%D9%85%D8%A7%DB%8C%DB%8C-%D8%B1%DB%8C%D8%A7%D8%B6%DB%8C-%DA%A9%D9%87-%D8%B0%D9%87%D9%86%E2%80%8C%D9%87%D8%A7-%D8%B1%D8%A7-%D8%A8%D9%87-%DA%86%D8%A7%D9%84%D8%B4-%D9%85%DB%8C%E2%80%8C%DA%A9%D8%B4%D8%AF-r6/</link><description><![CDATA[
<p><img src="https://sinajalalvandi.ir/uploads/monthly_2025_03/pay-3456736.jpg.c417b9cc250fef3fb019a882a8d8d85d.jpg" /></p>
<p>مسئله کولاتز یکی از معروف‌ترین و در عین حال حل‌نشده‌ترین مسائل در دنیای ریاضیات است. این مسئله که گاهی با نام‌های «حدس کولاتز»، «دنباله ۳n+1» یا «مسئله سیراکیوز» نیز شناخته می‌شود، توسط لوتار کولاتز، ریاضیدان آلمانی، در سال ۱۹۳۷ مطرح شد. سادگی صورت مسئله در کنار پیچیدگی اثبات آن، این موضوع را به یکی از جذاب‌ترین معماهای ریاضی تبدیل کرده است. در این مقاله، به بررسی این مسئله، نحوه عملکرد آن، یک مثال برنامه‌نویسی و اهمیت آن در ریاضیات مدرن می‌پردازیم.</p><h4>مسئله کولاتز چیست؟</h4><p>صورت مسئله کولاتز بسیار ساده است: یک عدد طبیعی (مثبت) دلخواه انتخاب کنید و سپس از این قانون پیروی کنید:</p><ul><li><p>اگر عدد زوج باشد، آن را بر ۲ تقسیم کنید.</p></li><li><p>اگر عدد فرد باشد، آن را در ۳ ضرب کرده و ۱ را به نتیجه اضافه کنید (۳n + 1).</p></li><li><p>این روند را با عدد جدید تکرار کنید.</p></li></ul><p>حدس کولاتز می‌گوید که مهم نیست چه عددی را در ابتدا انتخاب کنید، با تکرار این مراحل، در نهایت به عدد ۱ خواهید رسید. پس از رسیدن به ۱، دنباله وارد یک چرخه می‌شود: ۱ → ۴ → ۲ → ۱، و این روند بی‌پایان تکرار می‌شود. به این ترتیب، سؤال اصلی این است: آیا این حدس برای همه اعداد طبیعی صادق است؟</p><h4>مثال ساده</h4><p>برای درک بهتر، بیایید با عدد ۱۳ شروع کنیم و مراحل را دنبال کنیم:</p><ul><li><p>۱۳ فرد است: ۳ × ۱۳ + ۱ = ۴۰</p></li><li><p>۴۰ زوج است: ۴۰ ÷ ۲ = ۲۰</p></li><li><p>۲۰ زوج است: ۲۰ ÷ ۲ = ۱۰</p></li><li><p>۱۰ زوج است: ۱۰ ÷ ۲ = ۵</p></li><li><p>۵ فرد است: ۳ × ۵ + ۱ = ۱۶</p></li><li><p>۱۶ زوج است: ۱۶ ÷ ۲ = ۸</p></li><li><p>۸ زوج است: ۸ ÷ ۲ = ۴</p></li><li><p>۴ زوج است: ۴ ÷ ۲ = ۲</p></li><li><p>۲ زوج است: ۲ ÷ ۲ = ۱</p></li></ul><p>حالا به ۱ رسیدیم و دنباله وارد چرخه ۱ → ۴ → ۲ → ۱ می‌شود. این مثال نشان می‌دهد که حدس کولاتز برای عدد ۱۳ برقرار است. اما آیا این برای همه اعداد صادق است؟ تاکنون هیچ کس نتوانسته این را به طور قطعی اثبات یا رد کند!</p><h4>برنامه‌نویسی مسئله کولاتز</h4><p>برای درک بهتر رفتار این دنباله، می‌توانیم از برنامه‌نویسی استفاده کنیم. در زیر یک کد ساده به زبان پایتون ارائه شده است که دنباله کولاتز را برای یک عدد دلخواه محاسبه می‌کند:</p><pre spellcheck="" class="ipsCode language-python" data-language="Python"><code>def collatz(n):
    print(n, end=" -&gt; ")
    while n != 1:
        if n % 2 == 0:  # اگر زوج باشد
            n = n // 2
        else:  # اگر فرد باشد
            n = 3 * n + 1
        print(n, end=" -&gt; ")
    print("پایان")

# تست با یک عدد
collatz(13)</code></pre><p>خروجی این کد همان دنباله‌ای است که برای عدد ۱۳ در بالا محاسبه کردیم:</p><pre spellcheck="" class="ipsCode language-plaintext" data-language="‏متن ساده ‏"><code>13 -&gt; 40 -&gt; 20 -&gt; 10 -&gt; 5 -&gt; 16 -&gt; 8 -&gt; 4 -&gt; 2 -&gt; 1 -&gt; پایان</code></pre><p>این برنامه نشان می‌دهد که دنباله چگونه به ۱ می‌رسد. می‌توانید عدد دیگری را امتحان کنید و رفتار دنباله را بررسی کنید. نکته جالب اینجاست که حتی برای اعداد بسیار بزرگ (مثلاً میلیون‌ها یا میلیاردها)، آزمایش‌ها نشان داده‌اند که دنباله در نهایت به ۱ می‌رسد، اما این فقط یک مشاهده تجربی است و نه یک اثبات ریاضی.</p><h4>چرا کولاتز حل‌نشده باقی مانده است؟</h4><p>با وجود سادگی ظاهری، اثبات یا رد حدس کولاتز به یکی از دشوارترین چالش‌های ریاضی تبدیل شده است. ریاضیدانان تا به امروز دنباله کولاتز را برای اعداد بسیار بزرگ آزمایش کرده‌اند (تا حدود ۲ به توان ۶۸) و همه آن‌ها به ۱ رسیده‌اند. با این حال، این آزمایش‌ها نمی‌توانند تضمین کنند که هیچ عددی وجود ندارد که به ۱ نرسد یا وارد یک چرخه دیگر شود. این مسئله به نظریه اعداد و رفتار غیرقابل پیش‌بینی دنباله‌ها مرتبط است و ابزارهای ریاضی فعلی هنوز برای حل کامل آن کافی به نظر نمی‌رسند.</p><h4>اهمیت و جذابیت کولاتز</h4><p>مسئله کولاتز نه تنها برای ریاضیدانان، بلکه برای برنامه‌نویسان و علاقه‌مندان به علوم کامپیوتر نیز جذاب است. سادگی پیاده‌سازی آن در کد و در عین حال عمق ریاضیاتی‌اش، آن را به یک موضوع ایده‌آل برای آموزش و پژوهش تبدیل کرده است. علاوه بر این، کولاتز نمونه‌ای از مسائلی است که نشان می‌دهد چگونه یک سؤال ساده می‌تواند به یک معمای عمیق و حل‌نشده منجر شود.</p><h4>نتیجه‌گیری</h4><p>حدس کولاتز همچنان یکی از اسرار بزرگ ریاضیات مدرن است. آیا روزی کسی خواهد توانست آن را اثبات یا رد کند؟ یا شاید این مسئله برای همیشه حل‌نشده باقی بماند؟ تا آن زمان، ما می‌توانیم با آزمایش اعداد مختلف و نوشتن برنامه‌هایی مثل مثال بالا، از زیبایی و رمز و راز این دنباله لذت ببریم. اگر به ریاضیات یا برنامه‌نویسی علاقه دارید، پیشنهاد می‌کنم خودتان چند عدد را امتحان کنید و ببینید که آیا می‌توانید الگویی جدید کشف کنید!</p>]]></description><guid isPermaLink="false">6</guid><pubDate>Mon, 11 Nov 2024 01:15:27 +0000</pubDate></item></channel></rss>
