Search This Blog

Sunday, May 27, 2012

ဘီယူဂျီ ဘတ်ဂ် ရှာဖွေသတ်

ဘတ်ဂ် (Bug) ဆိုတာ အင်္ဂလိပ်စာမှာ ပိုးကောင်ကို ခေါ်တာ ဖြစ်ပေမယ့် ကွန်ပျူတာ ဆော့ဖ်ဝဲလ်ထဲမှာ ဖြစ်တဲ့အမှားကိုလည်း ဘတ်ဂ်လို့ ခေါ်တာမှန်း သိကြမှာပါ။ ပိုးကောင်နဲ့ ဆော့ဖ်ဝဲလ်ထဲမှာ ဖြစ်တဲ့ အမှား ဘယ်လို ဆက်စပ်နေသလဲ ဆိုတဲ့ ဇာတ်လမ်းကိုတော့ ပရိုဂရမ်မာ တော်တော်များများ ကြားဖူးကြပါ လိမ့်မယ်။ ၁၉၄၇ ခုနှစ်က ဟားဗတ် တက္ကသိုလ်က မာ့ခ်တူး ဆိုတဲ့ ကွန်ပျူတာ တစ်လုံး ရုတ်တရက် ရပ်သွားပါတယ်။ အဲဒီတုန်းက အခုခေတ်လို အီလက်ထရွန်းနစ် ကွန်ပျူတာတွေ မပေါ်သေးပါဘူး။ စက်မှုအစိတ်အပိုင်းတွေကို လျှပ်စစ်နဲ့ မောင်းတဲ့ ကွန်ပျူတာ မျိုးပါ။ ကွန်ပျူတာ ရပ်သွားရတဲ့ အကြောင်းကို ရှာတော့ စက်ပစ္စည်းတွေကို ထိန်းချုပ်တဲ့ လျှပ်စစ် ရီလေး ခလုတ် တစ်ခုထဲမှာ ဘောက်ဖတ်တစ်ကောင် ညပ်နေတာကို သွားတွေ့ရပါတယ်။ အဲဒီ ဘောက်ဖတ်ကြောင့် ရီလေး အလုပ်မလုပ်တော့ပဲ ကွန်ပျူတာပါ ရပ်သွားခဲ့ရတာပါ။ အဲဒီအချိန်က စပြီး ကွန်ပျူတာမှာ အမှားဖြစ်ရင် ဘတ်ဂ် (ပိုးကောင်) တွေ့တယ်လို့ ဆိုကြပါတယ် လို့ ရာဇဝင် ရှိပါတယ်။

အမေရိကန်က ထုတ်တဲ့ အက်ဖ်-၁၆ တိုက်လေယာဉ်ပျံကို ဆော့ဖ်ဝဲလ် Simulator နဲ့ စမ်းသပ် မောင်းနှင်တဲ့ အချိန်တုန်းက တော်တော် ကြီးကြီးမားမား ဘတ်ဂ် တစ်ခုကို တွေ့ရတယ်လို့ ဆိုပါတယ်။ ပုံမှန် အနေနဲ့ အက်ဖ်-၁၆ အတွက် ကျွမ်းပစ်တယ် ဆိုတာ အသေးအဖွဲ ကိစ္စပါ။ ဒါပေမယ့် ဆော့ဖ်ဝဲလ် အမှားကြောင့် အီကွေတာပေါ် မောင်းနှင်တဲ့ အချိန် ကမ္ဘာမြေဆွဲအား ရုတ်တရက် မြင့်သွားတာကြောင့် လေယာဉ်ပျံက ဆော့ဖ်ဝဲလ်ထဲမှာ သူ့ဘာသာသူ ကျွမ်း ထပစ် ပါတယ်။ ဆင်မျူလေတာ ထဲမှာတော့ ပိုင်းလော့ သေမယ့် အနေအထားကို ပြပါတယ်။  နောက်ပြီးတော့ အက်ဖ်-၁၆ ကို စမ်းသပ်မောင်းနှင်နေတဲ့ အချိန် ပိုင်းလော့ တစ်ယောက်က ပြေးလမ်းပေါ် ရပ်ထားတုန်း လေယာဉ်ပျံ ဘီးကို ဆွဲတင် ကြည့်ပါတယ်။ ဘာဖြစ်သွားတယ် ထင်ပါသလဲ။ အက်ဖ်-၁၆ တစ်စင်း ဒန်အိုးဒန်ခွက် ဝယ်တဲ့ ကုလားဆီ ရောက်သွားပါတယ်။

ပရိုဂရမ်မာ အတွက်အချက် မှားလို့ အမေရိကန် တစ်နိုင်ငံလုံး မျိုးကန်းတော့ မလို ဖြစ်တဲ့ကိစ္စမျိုး ရှိဖူးတယ်လို့ ကြားဖူးပါတယ်။ ဒုတိယကမ္ဘာစစ်ကြီးပြီးတော့ အမေရိကန်နဲ့ ဆိုဗီယက်ကြားမှာ စစ်အေး တိုက်ပွဲ ဆိုတဲ့ စစ်မတိုက်ပဲ တစ်ဖက်နဲ့ တစ်ဖက် အားပြိုင်နေတဲ့ ဖြစ်ရပ်ကြီး တစ်ခု ဖြစ်ခဲ့ကြတာ သိကြမှာပါ။ အဲဒီ အချိန်က အမေရိကန်မှာရော ဆိုဗီယက်မှာပါ တစ်နိုင်ငံနဲ့ တစ်နိုင်ငံ လှမ်းပစ်နိုင်တဲ့ တိုက်ချင်းပစ် ဒုံးကျည်တွေ ပေါ်မှာ နျူးကလီးယား ထိပ်ဖူးတွေ တပ်ပြီး ချိန်ထားကြပါတယ်။ အမေရိကန်နဲ့ ဆိုဗီယက် အချိန်မရွေး နျူးကလီးယား ဒုံးကျည်နဲ့ တစ်ဖက်နဲ့ တစ်ဖက် ပစ်နိုင်တဲ့ အနေအထားပါ။ ၁၉၈၃ မှာတော့ ဆိုဗီယက်က လွှတ်တင်ထားတဲ့ စောင့်ကြည့်ရေး ဂြိုဟ်တု တစ်ခုက တိမ်တိုက်တွေ အပေါ်မှာ နေရောင်ခြည် အလင်းပြန်တာကို အမေရိကန်က ဒုံးကျည် လွှတ်လိုက်တာ အဖြစ် အဓိပ္ပာယ် ပြန်လိုက် ပါတယ်။ အမေရိကန်က ဒုံးကျည် ၅ စင်း ပစ်လိုက်ပြီ ဆိုတဲ့ သတိပေးချက် ထွက်လာ တာကြောင့် အမေရိကန် ဒုံးကျည် ဆိုဗီယက်ကို မရောက်ခင် ဆိုဗီယက်ကနေ ပြန်ပြီးတော့ ဆော်ဖို့ ကြံပါတယ်။ ဒါပေမယ့် အဲဒီစနစ်ကို စောင့်ကြည့်နေတဲ့ ဗိုလ်မှူးကြီး တစ်ယောက်ကနေ အချိန်မီ ဆော့ဖ်ဝဲလ်အမှား အဖြစ် တားဆီးလိုက်နိုင်တဲ့ အတွက် အမေရိကန် နိုင်ငံကို ဆိုဗီယက်ကနေ နျူးကလီးယား ဒုံးကျည်နဲ့ အပစ်ခံရမယ့် အရေးကနေ သီသီကလေး လွတ်သွားပါတယ်။ အဲဒီဗိုလ်မှူးကြီးရဲ့ အပြောကတော့ အမေရိကန်ကသာ ဆိုဗီယက်ကို တကယ် ပစ်ချင်တယ် ဆိုရင် ဒုံးကျည် ၅ စင်းထဲတော့ ဘယ်ပစ်လိမ့်မလဲ လို့ ဆိုပါတယ်။

ကျောင်းတွေမှာ ပရိုဂရမ် ရေးတာ သင်ပေးတော့ ဘယ်လို စဉ်းစားရမယ် ဆိုတာသာ သင်ပေးပြီးတော့ ဒီဘတ်ဂ် (Debug) လို့ခေါ်တဲ့ ဘတ်ဂ်ကို ဘယ်လို ရှာရမယ် ဆိုတာ သင်မပေးကြပါဘူး။ တကယ်တော့ ဘတ်ဂ်ရှာတယ် ဆိုတာလည်း အတတ်ပညာ တစ်မျိုးပါပဲ။ ဘတ်ဂ်ရှာခြင်း အနုပညာဆိုပြီး စာအုပ်တစ်အုပ်တောင် ရေးလို့ ရလောက်ပါတယ်။ ဘယ်ပရိုဂရမ်မာမှ ဘတ်ဂ်များကင်းစင် ဆော့ဖ်ဝဲလ်တစ်ခွင် ဆိုပြီး ဘတ်ဂ်မရှိတဲ့ ပရိုဂရမ် မရေးတတ်ပါဘူး။ မမှားသော ရှေ့နေ၊ မသေသော ဆေးသမား ဆိုသလို ဘတ်ဂ်မရှိအောင် ရေးတတ်တဲ့ ဆော့ဖ်ဝဲလ် အင်ဂျင်နီယာလည်း မရှိပါဘူး။ စဉ်းစားတဲ့ အချိန် မှားသွားတာ ရှိတတ်သလို၊ သတိမမူမိတဲ့ တစ်နေရာမှာ အမှားဖြစ်သွားတာလည်း ဖြစ်နိုင်ပါတယ်။ ကိုယ့်ဆော့ဖ်ဝဲလ်ကို တခြား ဆော့ဖ်ဝဲလ်တွေနဲ့ ပူးပေါင်းစစ်ဆင်ရေး လုပ်တဲ့ အချိန် တူတာတွေ တွဲလုပ် မတူတာတွေ ခွဲလုပ်လို့ မရဘဲ မတူတာတွေက ဒုက္ခပေးတာ မျိုးလည်း ရှိတတ် ပါတယ်။

ကွန်ပျူတာ သုံးတဲ့သူတိုင်း ရီပို့ လုပ်လိုက်ရမလား။ မိုက်ခရိုဆော့ဖ်ကို ရီပို့ လုပ်လိုက်ရမလား ဆိုတဲ့ စခရင်ကို မမြင်ဖူးတဲ့သူ မရှိသလောက် ရှားမှာပါ။ ကွန်ပျူတာ ကြည့်နေရင်း ဘာဖြစ်သွားမှန်း မသိတဲ့ စခရင်အပြာကြီးကိုလည်း မြင်ဖူးကြပါလိမ့်မယ်။ အရင်တုန်းက အလုပ်အတူ လုပ်ဖူးတဲ့ အင်ဂျင်နီယာ တစ်ယောက် ကတော့ သူ့ကို ကပ်စတန်မာက ဘတ်ဂ်မရှိတဲ့ ဆော့ဖ်ဝဲလ်လိုချင်တယ် ပြောလို့ အဲဒါဆို ဝင်းဒိုးလည်း သုံးမနေနဲ့လို့ ပြန်ငေါ့တာကို မှတ်မိပါ သေးတယ်။ ဝင်းဒိုးဆော့ဖ်ဝဲလ်လောက် ဘတ်ဂ်များတာ ဝင်းဒိုး ပဲ ရှိပါတယ်။ သို့ပေမယ့်လည်း မချစ်သော်လည်း အောင့်ကာနမ်း ဝင်းဒိုးမသုံးဘဲ လင်းနပ်စ် အက်ပဲလ်ပဲ သုံးရင် အင်တာပရိုက်စ်လောကမှာ လုပ်စားဖို့ မလွယ်တာကြောင့် ဝင်းဒိုးနဲ့တော့ ကင်းကွာလို့ မဖြစ်ပါဘူး။ 

တကယ်တမ်းတော့ ပရိုဂရမ် ရေးရတာ သိပ်ခက်တဲ့ ကိစ္စ မဟုတ်ပါဘူး။ ကွာလတီ ရှိတဲ့ ဆော့ဖ်ဝဲလ်ကို ရေးနိုင်ဖို့ ခက်တာပါ။ ကိုယ်ရေးထားတာ ဘယ်သူမှ နားမလည်၊ ဘယ်သူမှ ပြင်မရ၊ ကိုယ်တောင်မှ နောက်တစ်နှစ် လောက်နေ ပြန်ဖတ်ရင် ဘာတွေ ရေးထားမှန်း မသိဖြစ်နေမယ့် ပရိုဂရမ်မျိုး ရေးတတ်တဲ့ သူတွေလည်း ရှိပါတယ်။ အရှိန်ကို တစ်နာရီ မှာသွားတဲ့ မိုင်နှုန်း (miles per hour)နဲ့တိုင်း သလို  ဆော့ဖ်ဝဲလ် ကုတ်ဒ်ရဲ့ ကွာလတီကို WTF per minute နဲ့ တိုင်းတယ်လို့ ဆိုကြပါတယ်။ ဆော့ဖ်ဝဲလ်ထဲမှာ ရေးထားတဲ့ ကုတ်ဒ်ကို တစ်ခြား တစ်စုံတစ်ယောက်က ဖတ်မိရင် ပါးစပ်ကနေ တစ်မိနစ်ကို What the Fxxx ဘယ်နှစ်ခါ ရွတ်ရသလဲ ဆိုတဲ့ အတိုင်းအတာပါ။ ကုတ်ဒ်က ရှုပ်ပွနေလေ WTF များများ ရွတ်ရလေ ပါပဲ။ ဘတ်ဂ်ရှာတဲ့ အချိန် WTF/min မြင့်တဲ့ ဆော့ဖ်ဝဲလ်မျိုးနဲ့ တွေ့ရင်တော့ အတော် အကုသိုလ် များပါတယ်။  ဘတ်ဂ်မရှိတဲ့ ဆော့ဖ်ဝဲလ် ရေးဖို့ မဖြစ်နိုင်ပေမယ့် ဘတ်ဂ်ရှာဖို့ လွယ်တဲ့ ဆော့ဖ်ဝဲလ် တော့ ရေးဖို့ ဖြစ်နိုင်ပါသေးတယ်။

တစ်နေ့တစ်နေ့ ဘတ်ဂ်တွေ မွေးလိုက်၊ ဘတ်ဂ်တွေ သတ်လိုက်နဲ့ လုံးလည်ချာလည် လိုက်နေတဲ့ ပရိုဂရမ်မာ ဘဝမှာ အခု ဘလော့ခ်ပို့စ်ကလေး ရေးတာတောင် ဖိုင်းယားဖောက်စ်က ဘတ်ဂ်တက်ပြီး ကိုယ်ရေးနေတဲ့ပို့စ် တစ်ပိုင်းတစ်စ ပျောက်သွားတာကြောင့် ဩော်ဘတ်ဂ်ရယ်။ ဘတ်ဂ်နိုင်လွန်းတယ်လို့ပဲ ညည်းလိုက်ချင် ပါတော့တယ်။

2 comments:

Anonymous said...

ေဆာ့ဖ္ဝဲလ္မွာပါလာတဲ့ ဘတ္ဂ္ေတြကို ဟာ့ဒ္ဝဲလ္ကရႏိုင္တဲ့ အျပာေရာင္မီးခိုး ဘလူးစမုတ္ခ္နဲ႔ ေပါင္းစပ္ေၾကာ္ေလွာ္လိုက္ရင္ လုပ္ငန္းခြင္အတြင္း စားသံုးႏိုင္တဲ့ အလြန္စားခ်င္ဖြယ္ စားၿမိန္စာကို ရရိွႏိုင္မွာျဖစ္ပါတယ္။

Anonymous said...

Pls let me share this.