آیا فایل من را برمیگرداند؟
فایل fet. شما یک برنامه زمانی کاری است؛ پیش از سپردن آن به هر ابزاری، یک پرسش ارزش پرسیدن دارد و یک آزمایش دو دقیقهای که پاسخ آن را میدهد.

یک فایل .fet ظاهر چندان پیچیدهای ندارد. چند صد کیلوبایت XML که در پوشهای کنار فایل سال گذشته قرار گرفته است.
اما شما میدانید چه چیزی در آن نهفته است. آن دو هفته در ماه اوت که صرف شد تا مشخص شود بلوک علوم نمیتواند همزمان میزبان دو کلاس عملی باشد. آن توافق با مدیر گروه زبانها که سه بار گفتگو برد. آن یازده قیدی که یکییکی اضافه کردید، هر کدام پس از آنکه مشکلی پیش آمد که دیگر هرگز نمیخواهید تکرارش را ببینید.
هیچکدام از اینها جای دیگری نوشته نشده است. اینها به شکل قید در آن فایل وجود دارند، و اگر گم شوند، شما فقط یک سند را از دست نمیدهید؛ بلکه منطق کار را از دست میدهید و در ماه سپتامبر، وقتی برنامه زمانی دیگر معنایی ندارد، متوجه آن میشوید.
بنابراین وقتی یک ابزار تحت وب پیشنهاد باز کردن آن را میدهد، سوال این نیست که آیا ابزار مفید است یا خیر. سوال این است: آیا فایل من را به من پس میدهد؟
چرا پاسخ معمولاً «نه کاملاً» است
بیشتر ابزارهایی که یک .fet را میخوانند، این کار را به روشی بدیهی انجام میدهند. شخصی فرمت را بررسی میکند، برای بخشهایی که نیاز دارد کد مینویسد — استادان، دروس، اتاقها، فعالیتها، قیدهای رایج — و آن را عرضه میکند.
این کار جواب میدهد، اما بیسروصدا شکست میخورد. FET دایره واژگان وسیعی از قیدها دارد و با هر نسخه رشد میکند. هر چیزی که نویسنده ابزار پیادهسازی نکرده باشد، به سادگی خوانده نمیشود و وقتی فایل دوباره ذخیره میشود، آنچه هرگز خوانده نشده، نوشته هم نمیشود. فایل همچنان باز میشود. همچنان معتبر است. فقط سه قیدی که برایتان از همه مهمتر بود را کم دارد و هیچجا هم چیزی در این مورد گفته نشده است.
این همان شکستی است که ارزش طراحی در برابر آن را دارد، زیرا دقیقاً در لحظهای که میخواهید آن را شناسایی کنید، نامرئی است.
ما چه کار متفاوتی انجام میدهیم
FET Explorer سعی نمیکند هر قیدی را بفهمد. سعی میکند نیازی به این کار نداشته باشد.
وقتی فایلی خوانده میشود، هر قید در آن با نام خودش ذخیره میشود و محتوای آن همانطور که هست حفظ میشود — فارغ از اینکه این برنامه بداند آن قید چه معنایی دارد یا نه. وقتی فایل را دانلود میکنید، هر کدام با همان نام، همان محتوا و همان ترتیب دوباره نوشته میشوند.
هیچ لیستی از انواع قیدهای پشتیبانیشده وجود ندارد، چون چیزی برای پشتیبانی وجود ندارد. یک نوع قید که در نسخهای از FET معرفی شده و ما هرگز نامش را نشنیدهایم، دستنخورده باقی میماند، به همان دلیلی که کلمهای که نمیدانید هنگام رونویسی دستی، حفظ میشود.
در برنامههای زمانی که امروز در مجموعه دادههای ما قرار دارند، این یعنی ۲,۹۸۷ قید در ۲۰ نوع مختلف، که بدون اینکه هیچکدام در کد خروجی به عنوان مورد خاص در نظر گرفته شوند، رفت و برگشت میکنند.
وزنها به همان شکل برمیگردند. قیدی که روی ۸۰٪ تنظیم شده، همچنان ۸۰٪ است — نه گرد شده، نه دوباره محاسبه شده و نه به «فعال» ارتقا یافته است. یک قید غیرفعال، غیرفعال برمیگردد. شرحهای شما برمیگردند.
فایل قبل از اینکه به دست شما برسد بررسی میشود
یک مورد وجود دارد که ما برای آن مداخله میکنیم.
یک .fet که FET از باز کردن آن امتناع میکند، از نداشتن فایل بدتر است: شما در مرحله نهایی متوجه میشوید، بدون اینکه بدانید کدامیک از چندین هزار رکورد مقصر است. بنابراین فایل قبل از تحویل داده شدن، ساخته و بازرسی میشود.

اگر چیزی که واقعاً مورد نیاز است گم شده باشد — فعالیتی بدون درس، یا کلاسی که به استادی اشاره دارد که در لیست استادان نیست — به شما اطلاع داده میشود و رکوردهای واقعی نام برده میشوند. مواردی که میتوانند با خیال راحت به صورت پیشفرض تنظیم شوند، همانطور تنظیم میشوند و هرگز به مشکل شما تبدیل نمیشوند.
اگر فایل معتبر است اما ناقص به نظر میرسد، به شما هشدار داده میشود و دکمه دانلود به هر حال نمایش داده میشود. این یک توصیه است، نه یک مانع.
و اگر خودِ بررسی اجرا نشود، دانلود به سادگی ادامه مییابد. بررسیای که هیچ نظری تولید نکرده، دلیلی برای ایستادن بین شما و فایل خودتان نیست.
حرف ما را قبول نکنید — دو دقیقه وقت بگذارید
این بخشی است که واقعاً ارزش انجام دادن دارد، چون تقریباً هیچ هزینهای ندارد و سوال را برای همیشه حل میکند.
- فایل
.fetخود را بارگذاری کنید. - بدون تغییر دادن هیچچیز، بلافاصله آن را دوباره دانلود کنید.
- دو فایل را با هم مقایسه کنید.

آنها باید فقط در قالببندی متفاوت باشند — تورفتگی، فاصلهگذاری ویژگیها، ترتیب چند فیلد اختیاری — و نه در هیچ چیز دیگر. همان فعالیتها، همان قیدها، همان وزنها، همان شرحها.
اگر دو فایل در محتوا تفاوت دارند، این یک باگ است و ما میخواهیم درباره آن بشنویم. نه چیزی که بخواهید با آن کنار بیایید، و نه چیزی که بخواهید در ماه سپتامبر کشف کنید.
یک استثنای صادقانه
اگر برنامه زمانی شما به جای .fet از صفحات گسترده ساخته شده است، نکتهای وجود دارد که ارزش دانستن دارد. ردیفهای CSV هیچ شناسه فعالیت FET را حمل نمیکنند و قیدهای جایگذاری برای اشاره به تکتک کلاسها به شناسههای ثابت نیاز دارند.
ما به جای رد کردن، هنگام ساخت فایل آن شناسهها را اختصاص میدهیم — و آنها را ذخیره میکنیم تا تغییر نکنند. دانلود دوم با اولی مطابقت دارد. شما میتوانید یک برنامه زمانی را از صفحات گسترده بسازید و همچنان یک .fet منسجم در خروجی دریافت کنید.
این نرمافزار چه چیزی نیست
FET Explorer برنامه زمانی تولید نمیکند. این برنامه آنچه FET تولید کرده را بهینهسازی، حل مجدد یا اصلاح نمیکند. FET بخش سخت کار را انجام میدهد؛ این برنامه نتیجه را میخواند، ارائه میدهد، به اشتراک میگذارد و ویرایش میکند.
که دقیقاً به همین دلیل است که رفت و برگشت اهمیت دارد. ابزاری که فقط برنامه زمانی را به شما نشان میدهد میتواند نیمی از فایل را درک کند. ابزاری که ممکن است در آن ویرایش انجام دهید، باید کل فایل را به شما پس بدهد.