Sunday, May 23

PROGRAMMING KNOWLEDGEMENT

Serial Port Programming by VB 6.0 (၁)
VB 6.0 ဟာ အခုလို .NET ေတြ တြင္က်ယ္ေနတဲ႔ ေခတ္မ်ိဳးမွာ သိပ္ ေခတ္မစားေတာ႔ပါဘူး။ ဒါေပမယ္႔ portable ပိုျဖစ္တယ္ ဆိုတဲ႔ အခ်က္ေၾကာင္႔ ကၽြန္ေတာ္တို႔ တစ္ခ်ိဳ႕ တစ္ေလ အတြက္ေတာ႔ အခုထိ လက္လႊတ္လို႔ မရေသးပါဘူး။ အခု ေဆာင္းပါးမွာေတာ႔ VB 6.0 ကိုသံုးၿပီး Serial Port ကို ေဒတာေတြ ဘယ္လို ေရးရမယ္ ဆိုတာကို ရွင္းလင္း တင္ျပသြားမွာ ျဖစ္ပါတယ္။
ဒါေပမယ္႔ ဒီေဆာင္းပါးကို ဖတ္ဖို႔ VB 6.0 နဲ႔ ပက္သက္တဲ႔ အေျခခံ အခ်ိဳ႕ကို သိထားၿပီး ျဖစ္ဖို႔ေတာ႔လိုပါတယ္။ ကၽြန္ေတာ္ ေရးတဲ႔ ေဆာင္းပါး အေတာ္မ်ားမ်ားဟာ အေျခခံ ရွိၿပီးသား စာဖတ္ ပရိသတ္ အတြက္ ရည္ရြယ္ထားတာ ျဖစ္တဲ႔ အတြက္ ေလ႔လာကာစ စာဖတ္ ပရိသတ္ အတြက္ ဖတ္ရတာ အခက္အခဲ ရွိတယ္ ဆိုရင္ ေတာင္းပန္ပါတယ္။
PC တစ္လံုးရဲ႕ Serial data ေတြကို Serial Port (Com1-Com4) ကေန ပို႔ေဆာင္တဲ႕ ေနရာမွာ ASCII data ေတြကို အသံုးခ် ရပါတယ္။ အဲဒီလို လုပ္ေဆာင္ဖို႔ VB 5.0 နဲ႔ 6.0 မွာ MsComm ဆိုတဲ႔ control ကို အသံုးျပဳရမွာ ျဖစ္ပါတယ္။ အဲဒီ control ဟာ custom control ျဖစ္တဲ႔ အတြက္ default control အေနနဲ႔ ပါလာမွာ မဟုတ္ပါဘူး။ ဒါေၾကာင္႔ menu ထဲက Project - Components ဆိုၿပီး ေပၚလာတဲ႔ dialog box ထဲက Microsoft comm control 6.0 ဆိုတာေလးကို ပံုမွာ ျပထားတဲ႔ အတိုင္း ေရြးခ်ယ္ေပးရပါမယ္။
ေနာက္ တစ္ဆင္႔ အေနျဖင္႔ MS Comm control (တယ္လီဖုန္းပံု) ကို ေအာက္ပံုတြင္ ေဖၚျပထားသည္႔ အတိုင္း Toolbox မွ form ေပၚသို႔ ဆြဲယူ ေရးသား ရမည္ ျဖစ္သည္။
Serial Port ကို programming အသံုးျပဳ၍ interfacing ျပဳလုပ္ရာတြင္ နည္းလမ္း ၂ ခုကို အသံုးျပဳႏိုင္သည္။
1. Interrupt communication
Interrupt communication ျပဳလုပ္ရာတြင္ Interrupt process မွ အဆိုပါ devices မ်ားမွ မိမိ ကြန္ပ်ဴတာ ၏ comm port ဆီသို႔ signal ပို႔မပို႔ကို ေစာင္႔ၾကည္႔ ေနရမည္ ျဖစ္သည္။ ပရိုဂရမ္မာ တစ္ေယာက္အေနျဖင္႔ ComEvent ႏွင္႔ OnCommEvent ႏွစ္ခုကို အသံုးျပဳရမည္ ျဖစ္သည္။ အကယ္၍ အဆိုပါ events မ်ား active ျဖစ္လာပါက devices မ်ားမွ signal မ်ား ေပးပို႔ေၾကာင္း သိရွိႏိုင္မည္ ျဖစ္သည္။
2. Polling Communication
PC system တစ္ခုတြင္ polling ဆိုသည္မွာ CPU ႏွင္႔ terminal တစ္ခုၾကား ေဒတာ ပို႔ေဆာင္ျခင္း ျဖစ္သည္။ ဥပမာ ကီးဘုတ္မွ ကီး တစ္ခုကို ႏွိပ္ထားမထား ေစာင္႔ၾကည္႔သည္႔ ပံုစံမ်ိဳးျဖစ္သည္။ သို႔ေသာ္ အဆိုပါ device တစ္ခုတည္းကိုသာ အခ်ိန္ျပည္႔ ေစာင္႔ၾကည္႔ေနပါက infinite looping ကဲ႔သို႔ အေျခအေနမ်ိဳး ျဖစ္ကာ အျခား devices မ်ား အလုပ္ ဆက္မလုပ္ႏိုင္ေတာ႔ဘဲ ကြန္ပ်ဴတာ ဟန္း သြားမည္ ျဖစ္သည္။ ထိုအေျခအေနမ်ိဳးကို "Web Poll" ဟုေခၚၿပီး Loss time 90% ရွိတတ္သည္။ အဆိုပါ cycle time lose ကို ေရွာင္ရွားရန္ VB Programming တြင္ Roung Robin ဟု ေခၚေသာ Timer control ကို အသံုးျပဳ၍ Serial Port ကို အလွည္႔က် ေစာင္႔ၾကည္႔ သည္႔ စနစ္ ကို အသံုးခ်ႏိုင္သည္။
MSComm control တြင္ interrupt ကို အသံုးျပဳႏိုင္ေသာ event မွာ Oncomm Event ျဖစ္သည္။ ပံုမွန္ Serial port communication အတြက္ အသံုးျပဳေလ႔ရွိေသာ comm event မွာ comEvReceive ႏွင္႔ comEvSend တို႔ ျဖစ္သည္။ Modem ကို အသံုးျပဳ၍ ဆက္သြယ္မႈ အေျမာက္အမ်ား အတြက္ signals မ်ားကို ေစာင္႔ၾကည္႔ရန္ အတြက္မူ MSDN ကိုသာ ရွာေဖြရန္ ရည္ညႊန္းလိုပါသည္။
MSComm Element (Serial Port အတြက္ setting မ်ား ျပဳလုပ္ျခင္း)
• ComPort သည္ RS-232 port interfacing အတြက္ Com1, Com2 စသျဖင္႔ ေရြးခ်ယ္ေပးရန္ ျဖစ္သည္။
• Setting မွာ Baud,Parity,Data(number of bits),Stop ပံုစံျဖည္႔ရန္ ျဖစ္သည္။ ဥပမာ။ "1200,n,8,1 "
• HandShaking တြင္ ကၽြန္ေတာ္တို႔ အေနျဖင္႔ အမ်ိဳးအစား ၄ မ်ိဳးကို ေအာက္ပါအတိုင္း သတ္မွတ္ ေပးႏိုင္ပါသည္
• comNone
• comXonXoff
• comRTS
• comTRSXonXoff
အခ်က္အလက္မ်ား ေပးပို႔ရာတြင္ Buffer ကို အသံုးျပဳပံု
-InBuffersize ကို လက္ခံရရွိလာေသာ အခ်က္အလက္မ်ား အတြက္ buffer အရြယ္အစားကို သတ္မွတ္ရန္ အသံုးျပဳသည္။
- OutBuffersize ကို ေပးပို႔မည္႔ အခ်က္အလက္မ်ား အတြက္ buffer အရြယ္အစားကို သတ္မွတ္ရန္ အသံုးျပဳသည္။
- Rthreshold ကို အခ်က္အလက္မ်ား ေပးပို႔ရာတြင္ Event-driven ျဖစ္ေစရန္ သတ္မွတ္သည္။
- Sthreshold ကို အခ်က္အလက္မ်ား ရယူရာတြင္ Event-driven ျဖစ္ေစရန္ သတ္မွတ္သည္။
- Inputlen သည္ buffer အတြင္း လက္ခံရယူႏိုင္ေသာ အခ်က္အလက္ အေရအတြက္ ကို သတ္မွတ္ေပးသည္။
- EOFEnable ဆိုသည္မွာ ဖိုင္ အဆံုးကို သတ္မွတ္ထားေသာ သေကၤတ ျဖစ္သည္။
About Hardware
- ParityReplace mean is character value instead of occur Parity Error
- NullDiscard mean is define in receive or not "NULL CHARACTER"
- RTSEnable mean is define signal RTS (Request To Send)
- DTSEnablemean is define signal DTR(Data Terminal Ready)
Port မ်ားကို ဆက္သြယ္ရန္အတြက္ MSComm ၏ properties မ်ားကို ေရြးခ်ယ္ သတ္မွတ္ျခင္း
1. CommPort Property ကို coding မိမိ ေရးသားရာတြင္ အသံုးျပဳလိုသည္႔ comm port ကို ေရြးခ်ယ္ႏိုင္ရန္ အတြက္ အသံုးျပဳႏိုင္သည္။ ဥပမာ။ Com1 ကို အသံုးျပဳမည္ဆိုပါက MSComm1.CommPort=1 ဟူ၍ေရးသားႏိုင္သည္။
2. Settings Property ကို coding ေရးသားရာတြင္ အခ်က္အလက္မ်ား ေပးပို႔/လက္ခံ မည္႔ သတ္မွတ္ခ်က္မ်ား ျဖစ္ေသာ Baud(rate for receive/send data),Parity(N),Number of bits,bits Stop စသည္တို႔ကို သတ္မွတ္ႏိုင္ရန္ အသံုးျပဳထားျခင္း ျဖစ္ပါသည္။ အသံုးျပဳပံုမွာ ေအာက္ပါ အတိုင္း ျဖစ္ပါသည္ -
MSComm1.Settings="Baud(rate for receive/send data),Parity(N),Number of bits,bits Stop"
ဥပမာ။ MSComm1.Settings="1200,N,8,1"
3. InputLen Property ကို input buffer size သတ္မွတ္ရန္ အတြက္ အသံုးျပဳသည္။
Exemple MSComm1.InputLen=1
4. Property PortOpen ကို port အား ဖြင္႔ျခင္း ပိတ္ျခင္း ျပဳလုပ္ရန္ အသံုးျပဳသည္။ Open =True ,Close =False
ဥပမာ။ MSComm1.PortOpen=True
5. Rthreshold Property သည္ buffer တြင္ အခ်က္အလက္မ်ား လက္ခံရရွိလာသည္႔ အခါတြင္ Event-driven activation ကို ျဖစ္ေပၚေစသည္။ OnComm Event procedure အတြင္းရွိ CommEvent ကို active ျဖစ္ေစသည္။
Example MSComm1.Rthreshold =1
MSComm properties မ်ားကို port selection ႏွင္႔ port enabling functions အစရွိေသာ communication parameters မ်ားအား သတ္မွတ္ေပးရန္ အသံုးျပဳႏိုင္သည္။ အဆိုပါ setting မ်ားကို ေအာက္တြင္ ေဖၚျပထားသကဲ႔သို႔ Form_load() procedure တြင္ ေရးသားျခင္း သို႔မဟုတ္ new Sub တစ္ခု ဖန္တီး၍ ေနာင္မွ ေခၚယူ အသံုးခ် ျခင္းမ်ား ျပဳလုပ္ႏိုင္သည္။
Private Sub Form_Load()
MSComm1.Settings="1200,N,8,1"
MSComm1.CommPort=1
MSComm1.InputLen=1
MSComm1.PortOpen=True
MSComm1.Rthreshold =1
End Sub
Serial port ကို သံုးျပဳ၍ ဆက္သြယ္ျခင္း
အထက္တြင္ ေရးသားျပခဲ႔ေသာ coding အရ Comm port ကို အသံုးျပဳ RS-232 ႏွင္႔ ဆက္သြယ္ရန္ အတြက္ လိုအပ္ေသာ အခ်က္အလက္မ်ား သတ္မွတ္ေပးထားၿပီး ျဖစ္ရာ ေဒတာ ေပးပို႔ျခင္း၊ ရယူျခင္းမ်ားကို Output ႏွင္႔ Input properties မ်ား အသံုးျပဳ၍ လုပ္ေဆာင္ ႏိုင္ပါသည္။
Output = အခ်က္အလက္မ်ားကို Serial port သို႔ ေပးပို႔ရန္ အသံုးျပဳသည္။
Input == အခ်က္အလက္မ်ားကို Serial port မွ ရယူရန္ အသံုးျပဳသည္။ but this will being command to write at Event Property OnComm that has in Sub MSComm_OnComm that read data from serial port or RS-232
ဥပမာ
keyboard မွ ရိုက္သြင္းလိုက္ေသာ အခ်က္အလက္မ်ားကို serial port သို႔ ေပးပို႔ရန္ အတြက္ TextBox Control ၏ KeyPress event ကို ေအာက္ေဖၚျပပါ အတိုင္း အသံုးျပဳႏိုင္သည္။
Sub txtRXTX_KeyPress(KeyAscii As Integer)
MSComm1.Output=Chr$(KeyAscii)
End Sub
ေပးပို႔ေသာ အခ်က္အလက္မ်ား ကို လက္ခံရယူရန္ အတြက္မူ OnComm event ကို ေအာက္ပါ နမူနာ အတိုင္း အသံုးျပဳ ႏိုင္သည္။
Private Sub MSComm1_OnComm()
Dim StrData As Variant 'define variable type as it is variant
Str=MSComm1.Input
Text1.Text=StrData
End Sub
ကၽြန္ေတာ္ ပထမဆံုး Input property ကို အသံုးျပဳစဥ္က direct data မ်ား ရယူရာတြင္ အဆင္မေျပ ျဖစ္ခဲ႔ရသည္။ ထို႔ေၾကာင္႔ filter function အေနႏွင္႔ ေအာက္တြင္ ေရးသား ေဖၚျပထားေသာ DataShow function ကို အသံုးျပဳခဲ႔ရသည္။
DataShow function
Public Static Sub DataShow(TextShow As Control, Data As String)
Const SpeedBaud = 16000
Dim LngSize As Long, X
LngSize = Len(TextShow.Text)
If TermSize > SpeedBaud Then
TextShow.Text = Mid$(TextShow.Text, 4097)
LngSize = Len(TextShow.Text)
End If
TextShow.SelStart = SpeedBaud
Do
X = InStr(Data, Chr$(8))
If X Then
If X = 1 Then
TextShow.SelStart = SpeedBaud - 1
TextShow.SelLength = 1
Data = Mid$(Data, X + 1)
Else
Data = Left$(Data, X - 2) & Mid$(Data, X + 1)
End If
End If
Loop While X
Do
X = InStr(Data, Chr$(10))
If X Then
Data = Left$(Data, X - 1) & Mid$(Data, X + 1)
End If
Loop While X
X = 1
Do
X = InStr(X, Data, Chr$(13))
If X Then
Data = Left$(Data, X) & Chr$(10) & Mid$(Data, X + 1)
X = X + 1
End If
Loop While X
TextShow.SelText = Data
TextShow.SelStart = Len(TextShow.Text)
End Sub

Call function DataShow :
Call DataShow Text1,(StrConv((StrData),vbUnicode))

Using Even in OnComm() procedure
ေအာက္ပါ နမူနာ ပရိုဂရမ္တြင္ Select case condition ကို အသံုးျပဳ၍ ေရးသား ထားပါသည္။
Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case comEvReceive
Dim Buffer As Variant
Buffer = MSComm1.Input
ShowData txtRXTX, (StrConv((Buffer), vbUnicode))
Case comEvSend : 'here put your condition that you want
Case comEvCTS
Case comEvDSR
Case comEvCD
Case comEvRing
Case comEvEOF
Case comBreak
Case comCDTO
Case comCTSTO
Case comDCB
Case comDSRTO
Case comFrame
Case comOverrun
Case comRxOver
Case comRxParity
Case comTxFull
End Select
End Sub
ကၽြန္ေတာ္႔ အေနနဲ႔ Microcontroller ကို Serial port ကေနတစ္ဆင္႔ Ascii command ေတြ လွမ္းပို႔ၿပီး stepper motor တစ္လံုးကို ဘယ္လိုမ်ိဳး ထိန္းခ်ဳပ္လို႔ ရလဲ ဆိုတာကို ေအာက္မွာ နမူနာ ေရးျပထား ပါတယ္။
A99 ' accelerate setting - အရွိန္ျမႇင္႔ဖို႔
V3 ' speed setting - အရွိန္ႏႈန္း
D5000 ' step setting -
H- 'direction setting - ဦးတည္ရာ ထိန္းခ်ဳပ္ရန္
G ' go ,it is start motor command - ေမာ္တာ စတင္ရန္
ေအာက္က နမူနာ ပရိုဂရမ္ေလးမွာ button တစ္ခု ထည္႔ထားၿပီး click လုပ္တဲ႕ အခ်ိန္မွာ အလုပ္စလုပ္မွာ ျဖစ္ပါတယ္။
Private Sub Command1_Click()
MSComm1.Settings="1200,N,8,1"
MSComm1.CommPort=1
MSComm1.InputLen=1
MSComm1.PortOpen=True
MSComm1.Rthreshold =1
If MSComm1.PortOpen Then
MSComm1.Output ="A99 V3 D5000 H- G " ' character lastest will be press space bar 1 time before put symbol "
End If
End Sub
ေအာက္ပါ ပရိုဂရမ္ကေတာ႔ MODEM ကို အသံုးျပဳၿပီး Serial port ကေန အဆက္အသြယ္ျပဳလုပ္တဲ႔ နည္းလမ္း နမူနာပဲ ျဖစ္ပါတယ္။
Private Sub Form_Load()
Dim strValue As String ' define Buffer value from Modem
MSComm1.CommPort = 1 ' select Com1
MSComm1.Settings = "9600,n,8,1" ' setting parameter in communicate with com port
MSComm1.InputLen = 0 'define size of Input buffer (comming with Modem)
MSComm1.PortOpen = True ' command open port
MSComm1.Output = "ATV1Q0" & Chr&(13) 'send AT command to Modem
Do
DoEvents
strValue = strValue & MSComm1.Input ' get input data of Com Port
Loop Until InStr(strValue, "OK" & vbCrLf)
MSComm1.PortOpen = False 'Close port
End Sub
မွတ္ခ်က္မ်ား
1. PORT ENABLING
Port ေရြးခ်ယ္ျခင္း ႏွင္႔ enable ျပဳလုပ္ျခင္းမ်ားကို form load ႏွင္႔ unload subroutines မ်ားတြင္ coding ေရးသား သင္႔သည္။ သို႔မဟုတ္ radio buttons ႏွင္႔ pull down menus မ်ားကို အသံုးခ်၍ runtime တြင္ ေရြးခ်ယ္ႏိုင္ရန္ စီမံထားသင္႔သည္။
2.ေဒတာမ်ား ရယူျခင္း
serial port မွ ေဒတာမ်ား ရယူရာတြင္ serial buffer ထဲမွာ လက္ခံရရွိတဲ႔ စာလံုးအေရအတြက္ မွန္ကန္တဲ႔ အထိ ေစာင္႔ဖို႔ အေရးႀကီးပါတယ္။ မွန္ကန္တဲ႔ စာလံုး အေရအတြက္ ရရွိလာရင္ carriage return (တစ္ေၾကာင္း ဆင္းဖို႔) တစ္လံုး နဲ႔ line feed အတြက္ တစ္လံုး စုစုေပါင္း ၂ လံုး ထပ္ေပါင္းထည္႔ၿပီး ေစာင္႔ၾကည္႔ရမွာ ျဖစ္ပါတယ္။
3.ေဒတာမ်ား ေပးပို႔ျခင္း
အေျခအေန အေတာ္မ်ားမ်ားမွာ Serial port ကေန ေဒတာ ေပးပို႔ရာမွာ Command တစ္ခုနဲ႔ တန္ဖိုး တစ္ခုကို တြဲၿပီး ပို႔ရမယ္႔ အေျခအေနမ်ိဳး ႀကံဳရေလ႔ ရွိပါတယ္။ ဥပမာ။ 'GO' ဆိုတဲ႔ ညႊန္ၾကားခ်က္နဲ႔ '1500' ဆိုတဲ႔ position value တစ္ခုကို တြဲလ်က္ ေပးခ်င္တယ္ဆိုရင္ ေအာက္ပါအတိုင္း ေပးပို႔လို႔ ရပါတယ္။
MSComm1.Output = " GO 1500" + Chr(13)
(အဲဒီမွာ Chr(13) ဆိုတာ carriage return (တစ္ေၾကာင္းဆင္းတဲ႔ သေကၤတ) ျဖစ္ပါတယ္။)
စာဖတ္သူမ်ား အေနနဲ႔ Microcontroller ေတြကို Serial port သံုးၿပီး ဘယ္လို ဆက္သြယ္ရလဲဆိုတာကို သိခ်င္ေနမယ္ ထင္ပါတယ္။ တကယ္ေတာ႔ အထက္က ေဖၚျပထားၿပီးသား နည္းလမ္းေတြကိုပဲ သံုးၿပီး ဆက္သြယ္ရတာပဲ ျဖစ္ပါတယ္။ ဒါေပမယ္႔ ကိုယ္ ဆက္သြယ္မယ္႔ Microcontroller ေတြ အသံုးျပဳထားတဲ႔ protocol ေတြကိုေတာ႔ ေသေသခ်ာခ်ာ သိထားရမွာ ျဖစ္ပါတယ္။
.....ဆက္ရန္
ဆက္လက္ဖတ္ရွဳရန္
ျပန္ပိတ္ရန္

Haious Ezy Uploader

ကၽြန္ေတာ္႔ အေနနဲ႔ စာဖတ္သူမ်ားကို upload တင္ဖို႔ Haious Ezy Uploader ဆိုတဲ႔ ဆိုဒ္ေလး တစ္ခုကို လက္တို႔ ခ်င္ပါတယ္။ ျမန္မာလူမ်ိဳး ကြန္ပ်ဴတာ ပညာရွင္ တစ္ေယာက္ လႊင္႔တင္ ထားတာ ျဖစ္ၿပီး ဘာ အက်ိဳး အျမတ္ကို မွ် မယူဘဲ အသံုးျပဳသူေတြ အခမဲ႔ နဲ႔ အဆင္အေျပဆံုး ျဖစ္ေအာင္ ႀကိဳးစားထားတာကို ေတြ႔ရပါတယ္။ အဲဒီဆိုဒ္ေလးမွာ အႀကီးဆံုး upload အရြယ္အစား အေနနဲ႔ 100 MB အထိ တင္ပို႔ ႏိုင္ၿပီး ဖိုင္ အမ်ိဳးအစား ေတြ အေနနဲ႔ GIF, JPEG, JPG, PNG, PDF, DOC, ZIP, EXE အစရွိတဲ႔ ဖိုင္မ်ိဳးစံုကို တင္ပို႔ ခြင္႔ ျပဳထားတာကို ေတြ႔ရပါတယ္။ ဒါ႔အျပင္ အဲဒီ တင္ပို႔ ထားတဲ႔ ဖိုင္ေလးေတြကိုလဲ ဘယ္ေတာ႔မွ မဖ်က္ဘဲ ထားေပးမယ္လို႔ အာမခံထားပါေသးတယ္။ ဒါေၾကာင္႔ User ေတြ အေနနဲ႔ မိမိတို႔ ဖိုင္ေလးေတြကို အျမဲတမ္း သိမ္းဆည္း ထားႏိုင္သလို ေစာင္႔ဆိုင္းစရာမလိုဘဲ အခ်ိန္မေရြး ဆြဲယူ အသံုးခ် ႏိုင္မွာ ျဖစ္ပါတယ္။ ဖိုင္ အေရအတြက္ အကန္႔ အသတ္မရွိ သိမ္းဆည္း ထားႏိုင္သလို twitter, digg, delicious နဲ႔ facebook ေတြမွာ direct link လုပ္ခြင္႔ ေပးထားတာမို႔ စမ္းသပ္ သံုးစြဲ ၾကည္႔ပါ လို႔ တိုက္တြန္းလိုက္ ပါရေစ။
အကိုးအကား
http://ezy.haious.org/v2/about.php
ဆက္လက္ဖတ္ရွဳရန္
ျပန္ပိတ္ရန္

ဘေလာက္လိပ္စာ ေျပာင္းလဲျခင္း
ကၽြန္ေတာ္႔ ဘေလာက္ေလးကို ဂူဂယ္က ဝယ္ထားျပီး Google App နဲ႔ ညိေနလို႔ ျပႆနာကို ေျဖရွင္းေနရတဲ႔ အခ်ိန္ အတြင္းမွာ http://blog.engineer4myanmar.com ကို မလႊဲမေရွာင္သာ အိမ္ေျပာင္း ေနခဲ႔ရပါတယ္။ အိမ္ငွားဘ၀မွာ ဆင္းရဲစြာေနခဲ႔ျပီးမွ အခု မူလလက္ေဟာင္း လိပ္စာ ေလး ျဖစ္တဲ႔ http://www.engineer4myanmar.com ကို ေအာက္ပါ ဆက္တင္းမ်ား အကူအညီနဲ႔ ျပန္လည္ ရရွိသြားျပီ ျဖစ္ပါတယ္။ ဒါေၾကာင္႔ လာေရာက္ ဖတ္ရႈၾကတဲ႔ မိတ္ေဆြမ်ားကို အရင္လိပ္စာျဖစ္တဲ႔ http://www.engineer4myanmar.com ကိုပဲ ေျပာင္းလဲ ဖတ္ရႈၾကဖို႔ အားနာနာနဲ႔ ပဲ ေမတၱာရပ္ခံပါရေစ ခင္ဗ်ာ။

ကၽြန္ေတာ္႔ ဘေလာက္ေလးကို လင္႔ခ္မ်ား ခ်ိတ္ထားခဲ႔မယ္ဆိုရင္အား အားလပ္တဲ႔ အခ်ိန္က်ရင္ လိပ္စာေျပာင္းလဲ ရည္ညႊန္းေပးပါလို႔ အႏူးအညႊတ္ ေတာင္းပန္ပါတယ္ခင္ဗ်ာ။
ဘေလာက္ဂါ အတြက္ DNS setting မ်ား
DNS setting ထဲမွာ
engineer4myanmar.com. 3600 IN A 64.202.189.170
www.engineer4myanmar.com. 3600 IN CNAME ghs.google.com.
ဒီလိုေလးပဲ ရွိေနဦးမယ္ဆိုရင္ အဆင္မေျပျဖစ္တတ္ပါတယ္။
ေအာက္ပါအတိုင္း ထပ္မံ ျပင္ဆင္ေပးလိုက္ပါ။
engineer4myanmar.com. 3600 IN A 64.233.179.121
engineer4myanmar.com. 3600 IN A 66.249.81.121
engineer4myanmar.com. 3600 IN A 72.14.207.121
www.engineer4myanmar.com. 3600 IN CNAME ghs.google.com.

မွတ္ခ်က္
ပံုမွန္အားျဖင္႔ DNS setting ထဲမွာ www.engineer4myanmar.com ကို ghs.google.com နဲ႔ assign လုပ္ေပးျပီး TTL 3600 ထားေပးလိုက္ရင္ အိုေကေပမယ္႔ ဒိုမိန္းနိမ္းကို ဂူဂယ္က ဝယ္ထားျပီး Google App နဲ႔ အခန္႔မသင္႔လို႔ ညိသြားရင္ ျပႆနာ အၾကီးအက်ယ္ တက္တတ္ပါတယ္။ အဲလိုျဖစ္လာရင္ Google blogger အတြက္ေပးထားတဲ႔ server ေတြရဲ႕ IP address 3 ခုကို A records 3 ခု လုပ္ျပီး အထက္ပါ ဥပမာအတိုင္း assign လုပ္ေပးျခင္းနဲ႔ ေျဖရွင္းႏိုင္ပါတယ္။
ဒါေပမယ္႔ http://engineer4myanmar.com ကိုပါ http://www.engineer4myanmar.com ကို redirect လုပ္ေပးဖို႔ လိုအပ္ပါတယ္။ ဒါမွသာ လိပ္စာ ၂ ခုလံုးနဲ႔ ဝင္လို႔ ရမွာ ျဖစ္ပါတယ္။ အဲဒါကို ကၽြန္ေတာ္ကေတာ႔ URL Redirection လုပ္ျခင္းျဖင္႔ ေျဖရွင္းပါတယ္။ အထူးသတိထားရမွာက အဲဒီအဆင္႔ကို DNS setting လုပ္ျပီးမွ သြားလုပ္မိရင္ DNS setting ေတြ ပ်က္သြားတတ္တာပါပဲ။ အဲဒါေလးကို ျပန္စစ္ျပီး ပ်က္သြားရင္ ျပန္လုပ္လိုက္ပါ။
အကိုးအကားမ်ား
http://blogging.nitecruzr.net/2008/06/custom-domain-publishing-and-google.html
Chuck [Blog*Star 2006 - 2008]
Real Blogger Status: http://blogging.nitecruzr.net/
ဆက္လက္ဖတ္ရွဳရန္
ျပန္ပိတ္ရန္

Happy birthday Google!
ဒီေန႔မွာ ဂူဂယ္ တစ္ေယာက္ ဆယ္ႏွစ္ျပည္႔ပါျပီ။ ဂူဂယ္ ေပၚေပါက္လာတဲ႔ သမိုင္းတစ္ေလွ်ာက္မွာ မွတ္သား စရာေလးေတြ ရွိတဲ႔ အတြက္ အခ်ိဳ႕ကို ေလ႔လာျပီး တင္ျပခ်င္ပါတယ္။ တကယ္ေတာ႔ ဂူဂယ္ ဆိုတာဟာ ၁၉၉၆ ဇန္နဝါရီလမွာ လာရီေပ႔ခ်္ (Larry Page) နဲ႔ ဆာေဂ်း ဘရင္း (Sergey Brin) ဆိုတဲ႔ စတန္းဖို႔ဒ္ တကၠသိုလ္က ပီအိပ္ခ်္ဒီ ေက်ာင္းသားေလး ၂ ေယာက္ တင္သြင္းခဲ႔တဲ႔ Search engine အေၾကာင္း ေရးသားထားတဲ႔ စာတမ္းေလး တစ္ေစာင္ ကေနျပီး စတင္ေပါက္ဖြားလာတာပဲ ျဖစ္ပါတယ္။ (ျမန္မာ ေက်ာင္းသားမ်ားလဲ ကိုယ္လုပ္တဲ႔ စာတမ္းေလးေတြကို လက္ေတြ႕ အသံုးက်ေအာင္ အတတ္ႏိုင္ဆံုး ႀကိဳးစား ျပဳစုႏိုင္ၾကပါေစ၊ ဂူဂယ္ လိုမ်ိဳး ေအာင္ျမင္တဲ႔ Product ေတြ ထုတ္ႏိုင္ပါေစလို႔ ဆုေတာင္းမိပါတယ္။)
အစကေတာ႔ သူတို႔ရဲ႕ search engine ကို BackRub လို႔ အမည္ေပးခဲ႔ပါတယ္။ ဘာလို႔လဲ ဆိုေတာ႔ ဆိုဒ္တစ္ခုရဲ႕ အေရးပါမႈကို သူ႔ကို ရည္ညႊန္းထားတဲ႔ backlinks ေတြေပၚမူတည္ျပီး ခန္႔မွန္း သတ္မွတ္ ဖို႔ ဒီဇိုင္းထုတ္ထားလို႔ပဲ ျဖစ္ပါတယ္။ ဒါေပမယ္႔ အဲဒီ မတိုင္မီကတည္းက ဒီ နည္းစံနစ္ကို သံုးထားတဲ႔ Rankdex ဆိုတဲ႔ search engine တစ္ခု ရွိေနႏွင္႔ ျပီးသားပါ။
သူတို႔ ႏွစ္ေယာက္ဟာ သီးစစ္လုပ္ၾကရင္း နဲ႔ အခု ဂူဂယ္ ျဖစ္လာမယ္႔ search engine အတြက္ အေျခခံ အုတ္ျမစ္ေတြကို ခိုင္ေအာင္ ခ်ႏိုင္ခဲ႔ၾကပါတယ္။ အစပိုင္းမွာ သူတို႔ search engine ရဲ႕ လိပ္စာဟာ စတန္းဖို႔ဒ္ ယူနီဗာစီတီရဲ႕ subdomain တစ္ခုျဖစ္တဲ႔ google.stanford.edu အေနနဲ႔ စတင္ခဲ႔တာပါ။ google.com ဒိုမိန္း ကို ၁၉၉၇ စက္တင္ဘာလ ၁၅ ရက္ေန႔ မွာမွ မွတ္ပံုတင္ခဲ႔တာ ျဖစ္ပါတယ္။ ၁၉၉၈ စက္တင္ဘာလ ၄ ရက္ မွာ Google Inc. ကို သူငယ္ခ်င္းတစ္ေယာက္ရဲ႕ ကားဂိုေထာင္ထဲမွာ စတင္ခဲ႔တာ ျဖစ္ပါတယ္။ အဲဒီလုိ စတင္ႏိုင္ဖို႔ လိုအပ္တဲ႔ ေငြ အရင္းအႏွီးကို Sun Microsystems ကို စတင္တည္ေထာင္ခဲ႔သူ Andy Bechtolsheim က ေဒၚလာ ၁၀၀၀၀၀ တန္ ခ်က္လက္မွတ္တစ္ခု စတင္ ထုတ္ေပးရာမွ အျခားရင္းႏွီးျမဳပ္ႏွံသူမ်ား ပါဝင္လာျပီး စုစုေပါင္း ေဒၚလာ ၁.၁ သန္းအထိ တိုးတက္မ်ားျပားလာခဲ႔ျခင္း ျဖစ္ပါတယ္။
၁၉၉၉ မတ္လ ေရာက္တဲ႔ အခါက်မွ ဆီလီကြန္ ေတာင္ၾကားမွာ ရွိတဲ႔ Palo Alto မွာ ကုမၸဏီကို ေျပာင္းေရႊ႕ျပီး က်က်နန အေျခခ် ႏိုင္ခဲ႔တာပဲ ျဖစ္ပါတယ္။ ေနာက္ပိုင္းမွာ အဲဒီ အေဆာက္အဦးေတြကို Googleplex လို႔ လူသိမ်ားလာခဲ႔ပါတယ္။
ဂူဂယ္ဟာ သူ႔ရဲ႕ ရိုးစင္းတဲ႔ ဒီဇိုင္းနဲ႔ လြယ္ကူစြာ အသံုးခ်ႏိုင္မႈတို႔ေၾကာင္႔ အသံုးခ်သူ အမ်ားစုက ႏွစ္သက္ခဲ႔ၾကပါတယ္။ ၂၀၀၀ခုႏွစ္ က စတင္ျပီး ဂူဂယ္မွာ search keywords ေတြကို အေျခခံတဲ႕ ေၾကာ္ျငာမ်ား စတင္ ထည္႔သြင္းလာပါတယ္။ (ဂူဂယ္ဘယ္က ပိုက္ပိုက္ေတြရသလဲဆိုတာ သိျပီေနာ္ :P)။
ဂူဂယ္ ဆိုတဲ႔ နာမည္ ျဖစ္လာပံုက ေတာ႔ googol (အဓိပၸါယ္က 10pow(100)) ဆိုတဲ႔ စာလံုးကို google လို႔ မွားေပါင္းရာက စလာခဲ႔တာျဖစ္ျပီး Merriam Webster Collegiate Dictionary နဲ႔ Oxford English Dictionary ေတြမွာ google ရဲ႕ အဓိပၸါယ္ကို “အင္တာနက္မွ အခ်က္အလက္မ်ားရယူရန္ ဂူဂယ္ search engine ကို အသံုးျပဳျခင္း” လို႔၂၀၀၆ မွ စတင္ျပီး ထည္႔သြင္း ေပးခဲ႔ပါတယ္။
ဂူဂယ္ရဲ႕ အဓိက ဆားဗစ္က Google web search engine ျဖစ္ေပမယ္႔ သူ႔မွာ အျခား ထင္ရွား လူၾကိဳက္မ်ားတဲ႔ ဆားဗစ္ေတြ အေတာ္မ်ားမ်ား ရွိပါေသးတယ္။ စာဖတ္သူ အားလံုး သိထားျပီးသားလဲ ျဖစ္လိမ္႔မယ္လို႔ ယံုၾကည္တဲ႔အတြက္ လက္အေညာင္းခံျပီး မေရးေတာ႔ပါဘူးေနာ္ :P။ အခုေလာေလာဆယ္ ကၽြန္ေတာ္႔အေနနဲ႔ကေတာ႔ ဂူဂယ္ကို သံုးျပီး သီးစစ္ရဲ႕ အစိတ္အပိုင္း အခ်ိဳ႕ကို ျပဳစုခဲ႔တာ ျဖစ္သလို သူ႔ကို အသံုးျပဳျပီး ဘေလာက္ဂါက တစ္ဆင္႔ နည္းပညာ တစ္ခ်ိဳ႕ကို ေဝမွ်ေပးႏိုင္ခဲ႔တဲ႔ အတြက္ ေက်းဇူးဆပ္တဲ႔ အေနနဲ႔ အခုလို ေဆာင္းပါးေလးနဲ႔ ဂူဂယ္ရဲ႕ ဆယ္ႏွစ္ေျမာက္ေမြးေန႔ေလးကို ႀကိဳဆို ဂုဏ္ျပဳလုိက္တာ ျဖစ္ပါတယ္ခင္ဗ်ား။
အကိုးအကားမ်ား
http://en.wikipedia.org/wiki/Google
ဆက္လက္ဖတ္ရွဳရန္
ျပန္ပိတ္ရန္
Google Chrome for Windows
Google က browser အသစ္ ထုတ္လိုက္ပါတယ္။ Google Chrome လို႔ေခၚျပီး ဒီေန႔ပဲ ဝင္းဒိုး သမားေတြ အတြက္ ထုတ္ေပးလိုက္ပါျပီ။ ဒီေနရာမွာ ေဒါင္းလုပ္ရယူႏိုင္ပါတယ္။ မၾကာမီ ပန္းသီးနဲ႔ လင္းနစ္ သမားေတြ အတြက္လဲ ထုတ္ေပးမယ္လို႕ ဆိုပါတယ္။ Google က ကာတြန္းေလးေတြနဲ႔ သူ႔ ဘေရာက္ဇာကို ေၾကာျ္ငာ ထားေပမယ္႔ ကၽြန္ေတာ္ကေတာ႔ ဘေလာက္ဂါ တစ္ေယာက္အေနနဲ႔ ဖိုင္းယားေဖာက္စ္ ေလာက္ မၾကိဳက္ပါဘူး။ စာေရးဖို႕ ျပင္ဆင္တဲ႕ ေနရာမွာ တစ္ခုခု လိုေနသလိုပါပဲ။ ေစာင္႔ေတာ႔ ၾကည္႔ရဦးမွာပါ။ ေလာေလာဆယ္ ျမန္မာဖြန္႔ေတြနဲ႔ သိပ္ အဆင္မေျပ ေသးဘူးလို႔ ထင္ပါတယ္။ ျမန္မာဖြန္႔(ေဇာ္ဂ်ီ)ကို ဖိုင္းယားေဖာက္စ္ ေလာက္ ကိုင္တြယ္တာ မေကာင္းပါဘူး။

မွတ္ဥာဏ္ပိုင္း နဲ႕ process ေတြကို ခြဲျပီး လုပ္ေပးတာ (Multiprocessing)၊ Task Manager (Shift + Esc) ကေတာ႔ အေတာ္ေလး ကို အသံုးဝင္ လာမယ္ ထင္ပါတယ္။ ဆိုဒ္ေတြကို analysis လုပ္ျပီး ေလ႔လာခြင္႔ ရလာႏိုင္ပါတယ္။ သိပ္ေလးတဲ႕ ဆိုဒ္ေတြကို သိသာလာမွာ ျဖစ္ပါတယ္။ အသြင္အျပင္ ဒီဇိုင္းပိုင္းကေတာ႔ ေျပာစရာမရွိေအာင္ ေကာင္းပါတယ္။ ဒိုင္းနမစ္ feature ေတြကို ေတာ႔ ေတာ္ေတာ္ေလး ၾကိဳက္ပါတယ္။ ဂ်ာဗား အင္ဂ်င္ ထည္႔ေပးထားတာလည္း သေဘာက်မိပါတယ္။ speed လဲ အနည္းငယ္ ျမန္လာသလို ခံစားရပါတယ္။ လံုျခံဳစိတ္ခ်မႈ အတြက္လည္း အေတာ္ေလးကို လုပ္ေပးထားတာ ေတြ႔ရပါတယ္။ ကၽြန္ေတာ္ အႀကိဳက္ဆံုး ကေတာ႔ open source ျဖစ္ေနတဲ႕ အခ်က္ပါပဲ။ စိတ္ဝင္စားသူမ်ား Chromium porject page ကို သြားေလ႔လာႏိုင္ပါတယ္။ သတင္းစာ ရွင္းလင္းပြဲမွာ ေျပာထားတာေလး ေတြ သိခ်င္ရင္ ေတာ႔ ဒီမွာ ဖတ္ပါ။
ျမန္မာလိုကေတာ႔ ဆက္တင္း နဲနဲ လုပ္ရပါတယ္။ ပံုထဲကအတိုင္း သြားၿပီး ဖြန္႔ေတြကို Zawgyi-One ေရြးလိုက္တာပါပဲ။


အဲလိုလုပ္တာေတာင္ ခုလို ေလးေထာင္႔တံုးေလးေတြကို ေအာက္မွာ ေတြ႔ေနရတုန္းပါပဲ။

စာဖတ္သူတို႕ ေတြ႕ရွိခ်က္ေလးေတြကိုလည္း ကြန္မန္႔မွာ ေရးထားေပးခဲ႔ေစခ်င္ပါတယ္။ သုေတသန လုပ္ၾကရေအာင္ေလ။ :P ဆက္လက္ဖတ္ရွဳရန္
ျပန္ပိတ္ရန္
@ TCP/IP အေၾကာင္းေလး ေျပာမယ္္ဗ်ာ
(၁) IP address ဆိုတာ ဘာလဲ ?

TCP/IP = Transmission Control Protocol and Internet Protocol ျဖစ္ပါတယ္ ။
IP တစ္ခု ဟာ 32 bit binary number ျဖစ္ၿပီး decimal ဂဏန္း 4 လံုးနဲ ့ေဖာ္ျပေလ ့ရွိပါတယ္ ။
decimal ဂဏန္း 1 လံုးစီဟာ 8 bits 0 to 255 (octets) ကုိကုိယ္စားျပဳပါတယ္ ။အဲလုိ ေဖာ္ျပတာကို “dotted decimal” လုိ ့ေခၚပါတယ္ ။
Example; 140.179.220.200 (Dotted decimal)
10001100.10110011.11011100.11001000 (Binary)

(၂) အမ်ိဳးအစား ဘယ္ႏွခု ရွိပါသလဲ ?

Classes အမ်ိဳးအစားကုိ အခုလို ခြဲထားပါတယ္ ။

Class Range of Address
A 1 to 126(127) binary 0xxx နဲ ့စ ပါတယ္။
B 128 to 191 binary 10xx နဲ ့စ ပါတယ္။
C 192 to 223 binary 110x နဲ ့စ ပါတယ္။
----------------------------------------------------------------------------
D 224 to 239 binary 1110 နဲ ့စ ပါတယ္။
E 240 to 254 binary 1111 နဲ ့စ ပါတယ္။
----------------------------------------------------------------------------
က်န္ေနတဲ့ 127(localhost) ကို local loopback အတြက္သံုးပါတယ္ ။သင္ 127.0.0.1 ကို ping ၿပီးစမ္းသပ္ႏိုင္ပါတယ္ ။
Class D addresses ကို multicasting အတြက္ သံုးပါတယ္။ Class E addresses ကုိေတာ့ future use ဆုိၿပီးသတ္မွတ္ထားပါတယ္ ။အဲဒါေၾကာင့္
သင့္ရဲ ့ IP address ကိုရိုက္တဲ့ အခါ 1 to 223 ကေနပဲ စရုိက္လို ့ရပါတယ္ ။ 224 ကေနစၿပီး ေနာက္ပုိင္းကုိ ရုိက္လုိ ့မရပါဘူး ။ အလြယ္တကူ စမ္းသပ္ ၾကည့္ႏုိင္ပါတယ္ ။

Private Network Address ၄ ခုရွိပါတယ္ ။

( Local loopback Address )- 127.0.0.1

( Class A )- 10.0.0.0
( Class B )- 172.16.0.0
( Class C )- 192.168.0.0

Class ေတြကို ပံုမွန္အားျဖင့္ ဘယ္လုိဆံုးျဖတ္သလဲ ဆိုတာ ေလ့လာၾကရေအာင္- (N) က network ကိုကိုယ္စားျပဳၿပီး (n) က node ကုိကိုယ္စားျပဳပါတယ္ ။
- Class A -- NNNNNNNN.nnnnnnnn.nnnnnnn.nnnnnnn
- Class B -- NNNNNNNN.NNNNNNNN.nnnnnnnn.nnnnnnnn
- Class C -- NNNNNNNN.NNNNNNNN.NNNNNNNN.nnnnnnnn
အဲဒါေၾကာင့္
Class A ကိုသံုးမယ္ဆိုရင္ network (N)ေပါင္း 2^8 = 255 ကိုသံုးႏုိင္မွာျဖစ္ၿပီး အဲဒီ network ရဲ ့ေအာက္မွာ ကြန္ပ်ဴတာေပါင္း (n)
255 x 255 x 255 =16581373 လံုးကိုတပ္ဆင္အသံုးျပဳႏုိင္မွာ ျဖစ္ပါတယ္ ။
Class B ကိုသံုးမယ္ဆိုရင္ network (N)ေပါင္း 255 x 255 =65025 ကိုသံုးႏုိင္မွာျဖစ္ၿပီး အဲဒီ network ရဲ ့ေအာက္မွာ ကြန္ပ်ဴတာေပါင္း (n)
255 x 255 = 65025 လံုးကိုတပ္ဆင္အသံုးျပဳႏုိင္မွာ ျဖစ္ပါတယ္ ။
Class C ကိုသံုးမယ္ဆိုရင္ network (N)ေပါင္း 255 x 255 x 255 =16581373 ကိုသံုးႏုိင္မွာျဖစ္ၿပီး အဲဒီ network ရဲ ့ေအာက္မွာ ကြန္ပ်ဴတာေပါင္း (n)255 လံုးကိုတပ္ဆင္အသံုးျပဳႏုိင္မွာ ျဖစ္ပါတယ္ ။

(IP address မွာ 192.168. ေတြပဲ ဘာလုိ ့ျဖစ္ေနရတာလဲ လို ့မၾကာခဏ အေမးခံရပါတယ္။ကုိယ္သံုးမယ္ ့ ကြန္ပ်ဴတာ အေရအတြက္(node)ဟာ ၂၅၅ လံုးကုိ မေက်ာ္ဘူး ဆိုရင္ Class C ကိုပဲ သံုးၾကလို့ပါ။)
ေနာက္တစ္ခုကေတာ့ node မွာ decimal no: 0 နဲ ့ 255 ကိုထည့္လုိ ့မရပါဘူး။(ဥပမာ- 192.168.1.0* / 192.168.1.255* )
IP address မွာ node portion all Ones (11111111)=255 က Broadcast Address ျဖစ္ပါတယ္ ။
IP address မွာ node portion all Zeros(00000000)=0 က Network Address ျဖစ္ပါတယ္ ။

ကဲ ......ဒီကေန ့ေတာ့ ဒီမွ်ပါပဲကြယ္ ။စာဖတ္သူအေပါင္း IP address နဲ ့ပတ္သက္လို ့ အသိေတြ တိုးပြားႏိုင္ၾကပါေစ ။

Sunday, June 29, 2008
@ group policy မွ drives: မ်ားကို ပိတ္ျခင္း၊ ေဖ်ာက္ျခင္း
group policy ဟာ registry editor လုိပဲ function ေတြအမ်ားႀကီးပါ ပါတယ္ ။ group policy ကနားလည္ ရတာပိုလြယ္ပါတယ္ ။group policy ကေန Drives: ေတြကုိ ၀င္လို ့မရေအာင္ ပိတ္ထားတာ ၊ ေဖ်ာက္ခ်င္တဲ့ Drives: ေတြကို ေဖ်ာက္ထားတဲ့ အေၾကာင္းေလး ေျပာျပပါမယ္။ပထမဦးဆံုး Run မွာ gpedit.msc လုိ ့ ရုိက္ ထည့္လုိက္ပါ။ဒါဆိုရင္ Group Policy Dialog Box က်လာပါလိမ့္မယ္။ဘယ္ဘက္ Box ရဲ ့ Local Computer Policy မွာ Computer Configuration နဲ ့User Configuration ဆိုၿပီး ႏွစ္ခု ရွိပါတယ္ ။User Configuration > Administrative Templates > Windows Components > Windows Explorer ကိုသြားပါ ။ေအာက္ပါပံုကို ၾကည့္ပါ။





ပထမဆံုး Prevent access to drives from my Computer ကုိႏွိပ္လိုက္ပါ။ Setting Tab မွာ Enable ေပးလိုက္ ပါ ။Restrict all drives ကုိ Default ေရြးထားပါတယ္ ။ အဲဒါကုိ ေရြးမယ္ဆိုရင္ ကုိယ့္မွာ ရွိသမွ် Drives ေတြအကုန္လံုးကုိ သံုးလို ့ရမွာ မဟုတ္ေတာ့ပါဘူး ။ အဲဒီအျပင္ C: ထဲမွာ Window OS ရွိတဲ့ အတြက္ My Documents ၊ Shared Documents နဲ ့ Desktop ေပၚက folder ေတြကိုလည္း ဖြင့္လို ့ရမွာ မဟုတ္ေတာ့ပါ ဘူး။ My Network Places , Recycly Bin နဲ ့ software ေတြကိုေတာ့ သံုးလုိ ့ရပါတယ္ ။ အဲဒါေၾကာင့္ ကုိယ္အေနနဲ ့ လိုအပ္မယ္ထင္တဲ့ Drives တစ္ခု ၊ ႏွစ္ခု ကိုပဲ ပိတ္ထားတာက ေကာင္းပါတယ္ ။ ကၽြန္ေတာ္က Drives D: ကိုပိတ္ထားလုိက္ပါမယ္ ။ ေအာက္က ပံုကုိ ၾကည့္ပါ ( Explain ဆုိတဲ့ Tab မွာလည္း အေသးစိတ္ ရွင္းျပထားပါတယ္ )။ OK ေပးလုိက္ပါၿပီ ။ My Computer ထဲကို သြားၿပီး Drives D: ကိုဖြင့္ၾကည့္ပါ ။ ဖြင့္လုိ ့မရေတာ့ပါဘူး ။Address Bar ကေနဖြင့္ရင္လည္း မရပါဘူး ။



အဲဒီလိုပါပဲ ။ Hide these specified drives in My Computer ကို Setting Tab မွာ Eable ေပးလိုက္ပါ။ Restrict all drives ကုိ Default ေရြးထားပါတယ္ ။ အဲဒါကုိ ေရြးမယ္ဆိုရင္ ကုိယ့္မွာ ရွိသမွ် Drives ေတြအကုန္လံုး မျမင္ရေတာ့ ပါဘူး ။ Hide လို ့ေျပာတဲ့ အတြက္ file ေတြကို Hidden လုပ္ထားတာနဲ ့ အလား သ႑န္တူပါတယ္ ။ Address Bar ကေန C: လုိ ့ရုိက္ထည့္ရင္ Drives C: ထဲကိုေရာက္သြားပါတယ္ ။ D: လို ့ ရုိက္ထည့္ရင္လည္း Drives D: ထဲကုိေရာက္သြားပါတယ္ ။ က်န္တာေတြကိုလည္း လိုက္ကလိခ်င္တယ္ဆိုရင္ ကလိၾကည့္ပါ ။စိတ္၀င္စားစရာ အမ်ားႀကီးရွိပါတယ္ ။ ကၽြန္ေတာ့္ရဲ ့ ဒီပုိစ့္ကို စိတ္၀င္စားလို ့ လုိက္လုပ္ၾကည့္သူ အေပါင္း ေအာင္ျမင္ပါေစဗ်ာ ။

spoolsv.exe using 99% of cpu - the solution
printer ရွိတဲ႔ သူ ေတာ္ေတာ္ မ်ားမ်ားမွာ ျဖစ္ေလ႔ရွိတဲ႔ ျပႆနာ တစ္ခု က တစ္ခါတစ္ေလ မွာ စက္က အလိုလိုေနရင္း သံုးရတာ ေလးလံလာလို႔ Task manager မွာ ၾကည္႔လိုက္တဲ႔ အခါ spoolsv.exe က CPU ရဲ႕ % အေတာ္မ်ားမ်ား တစ္ခါတစ္ေလ 99% ေလာက္ နီးပါးကို သံုးေနၾကတာကို ေတြ႔ရတတ္ပါတယ္။ အေတာ္မ်ားမ်ားက အဲလို ျဖစ္လာရင္ spoolsv.exe ကို ျဖဳတ္ခ်ပစ္လိုက္တတ္ပါတယ္။ အဲလို ျဖဳတ္ခ်လိုက္ရင္ အဲဒီ ခဏေတာ႔ ေကာင္းသြားတာေပါ႔ေလ။ ေနာက္တစ္ခု windows တက္လာရင္ ျပန္ဒုကၡေပးပါေလေရာ။ ဒီေတာ႔ တစ္ခ်ိဳ႕က အဲဒီ service ေလးကို disable ေပးထားလိုက္တတ္ပါတယ္။ ဒီေတာ႔ အဲလို ျပႆနာ မျဖစ္ေတာ႔ေပမယ္႔ printer ကိုျပန္သံုးခ်င္တိုင္း အဲဒီ service ကို ျပန္ Automatic setting ေျပာင္း start ျပန္လုပ္နဲ႔ အဆင္မေျပပါဘူး။ တကယ္႔ ျပႆနာ အစစ္က တစ္ျခားေနရာမွာပါ။ တကယ္ေတာ႔ အဲလိုျဖစ္ရာတာဟာ မ်ားေသာအားျဖင္႔ bad spooler files ေတြေၾကာင္႔ ျဖစ္ရတာပါ။ အမ်ားဆံုးက လိုကယ္ နက္၀က္ ခ်ိတ္ထားရင္ တျခားကြန္ျပဴတာေတြက လာတဲ႔ ဖိုင္ေတြေၾကာင္႔ ျဖစ္ပါတယ္။ (တျခားလူေတြက ကိုယ္႔ကို စိတ္ညစ္ေအာင္လုပ္ခ်င္လည္း အဲဒီ trick ေလး သံုးခ်င္သံုးနိုင္ပါတယ္။ :P) မလိုအပ္ရင္ printer ကို ရွယ္ရာ မေပးထားပါနဲ႔။ အဲဒီ bad spooler files ေတြ ဟာ C:\WINDOWS\system32\spool\PRINTERS ဆိုတဲ႔ Folder ထဲမွာ ရွိပါတယ္။ 0020.SHD, 0020.SPL စတဲ႔ ဖိုင္မ်ိဳးေတြ ျဖစ္ပါတယ္။ အဲဒါေလးေတြကို ရွင္းထုတ္လိုက္ရင္ အိုေကသြားမွာပါ။
ျပႆနာေျဖရွင္းနည္း

1.



Print spooler service ကို kill လုပ္ပါ။
2.


Printer share မ်ား ရွိေနပါက ျဖဳတ္ပစ္ပါ။
3.


C:\WINDOWS\system32\spool\PRINTERS ဆိုတဲ႔ Folder ကိုသြားပါ။ (ျမန္ေအာင္ run ထဲကို အဲဒီ လင္႔ရိုက္ထည္႔၊ ကူးထည္႔ျပီး သြားလုိ႕ ရပါတယ္။)။ ရွိေနတဲ႔ ဖိုင္ေတြ delete လုပ္ပါ။
4.


Print spooler service ကို start ျပန္လုပ္ပါ။

အဆင္ေျပသြားပါလိမ္႔မယ္။

ကဲ တလက္စတည္း ၾကံဳတုန္း short cut တစ္ခ်ိဳ႕ ကို ေျပာျပပါမယ္။ service တစ္ခုကို ျဖဳတ္ခ်ခ်င္တယ္ဆိုရင္ ပံုမွန္က task manager မွာ အဲဒီ process ကို right click လုပ္ျပီး End process လုပ္လိုက္ရင္ရပါတယ္။ ဒါေပမယ္႔ အဲဒါကို script ေရးခ်င္တဲ႔ သူမ်ားအတြက္ နည္းလမ္းေလးတစ္ခ်ိဳ႕ ေျပာျပပါမယ္။ command prompt ကေန services ေတြကို start, stop လုပ္လို႔ ရပါတယ္။ command က net start နဲ႔ net stop ျဖစ္ပါတယ္။ အသံုးျပဳပံုက net start "service name" နဲ႕ net stop "service name" ျဖစ္ပါတယ္။ ဒီေနရာမွာ service name ဆိုတာက ကုိယ္ kill လုပ္ခ်င္တဲ႔ service name ျဖစ္ပါတယ္။ ခု ကၽြန္ေတာ္တို႔ kill လုပ္ခ်င္ေနတဲ႔ service က print spooler ျဖစ္ပါတယ္။ မွတ္ခ်က္- spoolsv.exe မဟုတ္ပါဘူး။ မၾကာခဏ မွားတတ္ပါတယ္။ ေအာက္က ပံုမ်ားမွာ လက္ေတြ႕ အသံုးျပဳပံုကို ျမင္နိုင္ပါတယ္။





မိမိ kill လုပ္ခ်င္ေနတဲ႔ service name ကိုသိဖို႔ လိုအပ္ပါတယ္။ မသိေသးရင္ ပထမဆံုး administrative tools ထဲက services ကိုသြားပါ။ျမန္ျမန္ ေရာက္ခ်င္တယ္ ဆိုရင္ေတာ႔ ကားစီးသြား အဲေလ မွားလို႕ Run command ကေနသြားပါ။ services.msc ဆိုရင္ ေပၚလာပါလိမ္႔မယ္။အဲဒီမွာ ကိုယ္ kill လုပ္ခ်င္တဲ႔ services နာမည္ေတြကို မွတ္ထားလိုက္ပါ။
command ေတြကို သံုးတဲ႔အခါ kill လုပ္မယ္႔ service name ကို " " လုပ္ဖို႔ မေမ႔ပါနဲ႔။ အထက္က solution ကို bat file ေလးလုပ္ထားရင္ ကလစ္ တစ္ခ်က္နဲ႕ လက္မေညာင္းပဲ ေျဖရွင္းလို႔ ရပါျပီ။
ဘယ္လိုလုပ္ရမလဲဆိုေတာ႔

1.



notepad ကို ဖြင္႔ပါ
2.


ေအာက္ပါ စာသားမ်ားကို ရိုက္ထည္႔ပါ။

*



net stop "print spooler"
*


del C:\WINDOWS\system32\spool\PRINTERS\*.* /q
*


net start "print spooler"

1.



(/q ကို ဒုတိယလိုင္းမွာ သံုးထားတာက delete all လုပ္ထားလို႔ confirmation ေတာင္းလာရင္ Y/N ေပးမေနရေအာင္ တစ္ခါတည္း တိတ္တိတ္ေနဖို႕ ေျပာထားတာပါ။)ေအာက္ပါပံုအတုိင္း bat file extension (.bat) ျဖင္႔ file ကို save လုပ္ပါ။ ဒီဥပမာမွာေတာ႔ solv-spoolv.bat လို႕ နာမည္ ေပးထားပါတယ္။ Save as type ေနရာမွာ All file ကိုေရြးဖို႔ မေမ႔ပါနဲ႕။
ဒါဆို ေအာက္မွာ ျပထားတဲ႕ ပံုထဲကလိုမ်ိဳး bat ဖိုင္ေလး တစ္ခု ရလာပါမယ္။ ၄င္း ကို double click လုပ္ျပီး run လို႔ ရပါျပီ။ edit လုပ္ခ်င္ရင္ေတာ႔ right click လုပ္ျပီး Edit ကိုေရြးလို႔ ျပင္ဆင္နုိင္ပါတယ္ခင္ဗ်ာ။



*





http://www.computing.net/answers/windows-xp/spoolsvexe-big-problem-100-cpu/131323.html
*


http://torque.oncloud8.com/archives/000384.html
*


http://windowsitpro.com/article/articleid/15157/how-can-i-stop-and-start-services-from-the-command-line.html
*


http://technet.microsoft.com/en-us/library/bb490890.aspx

how to self-study commands
မွတ္ခ်က္။ beginner မ်ားအတြက္သာ ရည္ရြယ္ထားပါတယ္။
တစ္ခါတစ္ေလမွာ နီးရက္နဲ႔ ေ၀းေနၾကတဲ႔ သူတစ္ခ်ိဳ႕အတြက္ ကိုယ္႔ဘာသာကိုယ္ေလး လဲ ေလ႔လာျဖစ္ေအာင္ တင္ေပးလိုက္တာပါ။ တကယ္က အာေမခ်ာတစ္ေယာက္အေနနဲ႕ hand book တစ္ခုလို ေရးဖို႕ ေတာ္ေတာ္ အခ်ိန္ယူရပါတယ္။ ဒီၾကားထဲ အေရးတၾကီးသိခ်င္ရင္ အီးဘြတ္ခ္ ေတြ ၀က္ဘ္ဆိုဒ္ေတြ ၀င္စရာမလိုဘဲ ကိုယ္႔ဘာသာ ရွာတတ္ေအာင္ ေနရာျပေပးခ်င္ပါတယ္။ သိျပီးသားဆိုရင္ေတာ႔ ေက်ာ္ဖတ္ေပးသြားပါခင္ဗ်ာ။



တကယ္က ဘယ္ေဆာ႔ဖ္၀ဲ ၊ ဘယ္စံနစ္မဆို documentation ေကာင္းေကာင္းလုပ္ေပးရပါတယ္။ ဒါမွလဲ သံုးစြဲသူေတြ အဆင္ေျပမွာ ျဖစ္ပါတယ္။ မ်ားေသာအားျဖင္႔ help system ထဲမွာ normal user တစ္ေယာက္အေနနဲ႕ အလြယ္တကူ ေလ႕လာအသံုးျပဳလို႕ရေအာင္ စီစဥ္ေပးထားေလ႔ ရွိပါတယ္။



Windows XP မွာလဲ user ေတြေလ႔လာဖို႔ Help and Support Center ရွိပါတယ္။ ထိေရာက္ေအာင္ အသံုးခ်ေစခ်င္ပါတယ္ဗ်ာ။ သူ႔ရဲ႕အားသာခ်က္က အီးဘြတ္ခ္မ်ားလို ရွင္းျပရံုသာမက လိုအပ္တဲ႔ tools ေတြဆီကို တိုက္ရိုက္လင္႔ခ္ လုပ္ေပးထားလို႔ အေတာ္ေလးကို အဆင္ေျပပါတယ္။



နမူနာအေနနဲ႔ လူေမးမ်ားေနတဲ႔ commands ေတြကို ရွင္းျပထားတဲ႔ ေနရာေလးကို ဘယ္လိုသြားရတယ္ဆိုတာ ျပထားပါတယ္။ ကၽြန္ေတာ္ေမ႔ရင္ အဲဒီကုိ သြားၾကည္႔ေနၾကေပါ႔ဗ်ာ။ အထင္ေတာ႔ မေသးပါနဲ႔ help ဆိုလုိ႔။ ေနာက္ထပ္ ေမႊေနွာက္ျပီး မိမိလိုတာမ်ား ရွာသံုးၾကေစခ်င္ပါတယ္ခင္ဗ်ား။ စာဖတ္သူမ်ား ဗဟုသုတ တိုးပြားၾကပါေစခင္ဗ်ာ။




ဆက္လက္ဖတ္ရွဳရန္
ျပန္ပိတ္ရန္
Understanding and application of Windows XP command line utility in real life (၅)
4. time

date command နွင္႔ အတူတူ ပင္ျဖစ္သည္။ (၃) နည္းသံုးနိုင္သည္။

1) >time /t

2) time new_time

3) time



1) သည္ command prompt ၌ system time တစ္ခုတည္းကို သိလိုေသာအခါ အသံုးျပဳေသာ command ျဖစ္ပါသည္။ (ပံု-၁၀)

2) သည္ system time ကို ျပဳျပင္ခ်င္ေသာအခါ အသံုးျပဳေသာ command ျဖစ္ပါသည္။ အေရွ႔က time သည္ command ျဖစ္၍ အေနာက္က new_time ဆိုသည္မွာ မိမိေျပာင္းလဲခ်င္ေသာ ေန႔စြဲ အသစ္အား hh:mm:ss format အသံုးျပဳ၍ ထည္႔သြင္းေပးရန္ျဖစ္ပါသည္။ (e.g. >time 06:14:15) (ပံု-၁၁)

3) ေနာက္ဆံုး method မွာ system time ကို အရင္ၾကည္႔ရွုစစ္ေဆးျပီး ျပင္ဆင္လိုက ျပင္ဆင္နိုင္ရန္သံုးေလ႔ရွိပါသည္။ ျပင္ဆင္ရန္လိုအပ္သည္႔အခါ hh:mm:ss format ျဖင္႔ ျပင္ဆင္နိုင္သလို ျပင္ဆင္ရန္ မလိုအပ္ပါက enter နွိပ္၍ ေက်ာ္သြားနိုင္ပါသည္။ (ပုံ-၁၂၊ ပံု-၁၃)
ပံု-၁၀
ပံု-၁၁
ပံု-၁၂
ပံု-၁၃
5. exit

command line utility မွထြက္ရန္ အသံုးျပဳသည္။ ( cmd.exe အားပိတ္ရန္သံုးသည္။)



6. dir

directory (folder) နွင္္႔ subdirectory တို႔၏ စာရင္းမ်ားနွင္႔ ၄င္းတို႔ အတြင္းရွိ files list မ်ားၾကည္႔ရွဳရန္အတြက္ အသံုးျပဳသည္။ ၄င္း command အသံုးျပဳျခင္းျဖင္႔ disk တစ္ခု၏ volume label နွင္႔ serial number တို႔ကို ၾကည္႔ရွဳနိုင္သည္။ ထို႔ျပင္ files နွင္႔ directories တို႔၏ list မ်ားကို ေနာက္ဆံုး update လုပ္ထားေသာ ေန႔စြဲ နွင္႔ အခ်ိန္မ်ားအားၾကည္႔ရွဳနိုင္သည္။ ၄င္းျပင္ file and folder တို႔၏ စုစုေပါင္း အေရအတြက္ ၄င္းတို႔၏ size မ်ားနွင္႔ ၄င္း disk ၏ free space တို႔ကို ေဖၚျပေပးနိုင္သည္။

အလြယ္သံုးနည္း

>dir

>dir *.*

>dir *.txt

>dir *.exe

>dir file.txt

>dir file1.*

Note: * သည္ (all) အားလံုးဟု အဓိပါယ္ ရသည္။ file name ၏ format မွာ " Filename.Extension " ျဖစ္သည္။ ( e.g. autoexec.bat, command.com, video.mpeg, install.exe, picture1.jpg e.t.c)။ dot (.) ၏ အေရွ႔ဘက္၌ (*) ရွိလွ်င္ filename အားလံုးဟုဆိုလို၍ dot (.) ၏ အေနာက္ဘက္တြင္ * ရွိပါက extension မ်ားအားလံုး ( file type မ်ားအားလံုး) ဟုဆိုလိုပါသည္။ *.* ဟုဆိုလ်င္ all files ( file name အားလံုး၊ file type အားလံုး) ဟုဆိုလိုပါသည္။ *.txt ဆိုလ်င္ txt files မ်ားအားလံုး ( extension txt နွင္႔ဆံုးေသာ file အားလံုးဟု ဆိုလိုသည္။ *.exe ဆိုလွ်င္ exe files မ်ားအားလံုး ( extension exe နွင္႔ဆံုးေသာ file အားလံုး )ဟု ဆိုလိုသည္။ file1.* ဆိုလ်င္ file name file1 ရွိေသာ file types မ်ားအားလံုး ( e.g. file1.com, file1.exe, file1.jpg, file1.dat, file1.doc,.....)။ အကယ္၍ file name ကို အေသအခ်ာ မမွတ္မိေတာ႔ဘဲ အစသာမွတ္မိပါက file*.*, file*.exe အစရွိသျဖင္႔ ရွာနိုင္ျပီး အကယ္၍ အဆံုးသာ သိပါက *file.* ဟူ၍ အသံုးျပဳနိုင္သည္။ အကယ္၍ တစ္လံုးတည္း ေမ႔ေနပါက * အစား ? ကိုသံုးနိုင္သည္။ (e.g. file?.exe , ?file.exe .)
ပံု-၁၄
Parameters အျပည္႔အစံု (dir command အတြက္) အသံုးျပဳပံုစံ

dir [Drive:][Path][FileName] [...] [/p] [/q] [/w] [/d] [/a[[:]attributes]][/o[[:]SortOrder]] [/t[[:]TimeField]] [/s] [/b] [/l] [/n] [/x] [/c] [/4]

Parfveter တစ္ခုခ်င္းစီ၏ အသံုးျပဳပံုမ်ားအေၾကာင္းကို ရွင္းလင္းတင္ျပပါဦးမည္။

[Drive:][Path] မိမိ List လုပ္ၾကည္႔ရွဳလိုေသာ directory ၏ location တည္ေနရာကို ေဖၚျပရန္ျဖစ္သည္။ e.g. C:\Windows , D:\Video\Myanmar Video...) ၄င္း parameter ကို မထည္႔ဘဲထား၍လည္းရသည္။ ထိုသို႔ မထည္႔လ်င္ current directory (လက္ရွိ တည္ေနရာ) အတြင္းရွိ files နွင္႔ directory မ်ားကိုသာ list လုပ္ေပးမည္ျဖစ္သည္။ (ပံု-၁၅)
ပံု-၁၅
ဆက္လက္ဖတ္ရွဳရန္
ျပန္ပိတ္ရန္
Understanding and application of Windows XP command line utility in real life (၄)
2. cls

ပံု-၂ တြင္ help command ေၾကာင္႔ screen ၌ command list မ်ားျဖင္႔ျပည္႔ ေနပါသည္။ ထိုသို႔ screen တြင္ရွုပ္မေနေစရန္ cls command ကို သံုး၍ ရွင္းပစ္နုိင္ပါသည္။



3. date

Command line ကိုအသံုးျပဳ၍ systen date ကိုျပဳျပင္နိုင္ေသာ command ျဖစ္ပါသည္။ ၄င္းအား အသံုးျပဳပံု (၃)နည္း ရွိပါသည္။

1) date /t

2) date new_date

3) date



1) သည္ command prompt ၌ system date တစ္ခုတည္းကို သိလိုေသာအခါ အသံုးျပဳေသာ command ျဖစ္ပါသည္။ (ပံု-၅)

2) သည္ system date ကို ျပဳျပင္ခ်င္ေသာအခါ အသံုးျပဳေသာ command ျဖစ္ပါသည္။ အေရွ႔က date သည္ command ျဖစ္၍ အေနာက္က new_date ဆိုသည္မွာ မိမိေျပာင္းလဲခ်င္ေသာ ေန႔စြဲ အသစ္အား mm-dd-yy format အသံုးျပဳ၍ ထည္႔သြင္းေပးရန္ျဖစ္ပါသည္။ (e.g. >date 02-19-06) (ပံု-၆)

3) ေနာက္ဆံုး method မွာ system date ကို အရင္ၾကည္႔ရွုစစ္ေဆးျပီး ျပင္ဆင္လိုက ျပင္ဆင္နိုင္ရန္သံုးေလ႔ရွိပါသည္။ ျပင္ဆင္ရန္လိုအပ္သည္႔အခါ mm-dd-yy format ျဖင္႔ ျပင္ဆင္နိုင္သလို ျပင္ဆင္ရန္ မလိုအပ္ပါက enter နွိပ္၍ ေက်ာ္သြားနိုင္ပါသည္။ (ပုံ-၇၊ ပံု-၈)


ပံု-၅ date /t command
ပံု-6 date 02-24-2006
ပံု-7 date (ေျပာင္းလဲရန္လို)
ပံု-8 date (ေျပာင္းလဲရန္မလို)
Note: command မ်ားေနာက္တြင္ ထည္႔သြင္းေပးရေသာ parameter မ်ားကို switches မ်ားဟုေခၚေလ႔ရွိသည္။ အခ်ိဳ႔ command မ်ားတြင္ ၄င္း switches မ်ားကို မသံုးမေန သံုးစြဲရျပီး အခ်ိဳ႔ေသာ command မ်ားတြင္မူ အေျခအေနအရ ေရြးခ်ယ္သံုးစြဲရသည္။ အခ်ိဳ႔ေနရာမ်ားတြင္ switches မ်ားမပါဘဲ အသံုးျပဳနိုင္သည္။



Tip: အကယ္၍ command တစ္ခု၏ switches မ်ားနွင္႔ အသံုးျပဳပံုကိုေမ႔ေနပါက (သို.) သိခ်င္ပါက ေအာက္ပါအတိုင္း ေမးျမန္းနိုင္သည္။

(ပံု-၉) >command /?
ဆက္လက္ဖတ္ရွဳရန္
ျပန္ပိတ္ရန္

Understanding and application of Windows XP command line utility in real life (၃)
အသံုးမ်ားေသာ command မ်ား
Command မ်ားကို ရွင္းလင္းေရးသားရာတြင္ Dictionary approach ကဲ႔သို႔ alphabetical order ျဖင္႔ေရးသားျခင္း မျပဳဘဲ ပိုမိုေလ႔လာရ လြယ္ကူေသာ easy to learn approach ျဖင္႔ ေရးသားတင္ျပသြားပါမည္။ ပထမဦးစြာ အသံုးမ်ားေသာ command မ်ားကို ေလ႔လာရလြယ္ကူေအာင္ အသံုးျပဳေလ႔ရွိေသာ နည္းစံနစ္မ်ားအားေဖၚျပ၍ ဒုတိယပိုင္းတြင္ ပိုမို ျပည္႔စံုစြာ ရွင္းလင္းတင္ျပသြားမည္ျဖစ္ပါသည္။

လက္ေတြ႔စမ္းသပ္ရန္ အထက္တြင္ေဖၚျပခဲ႔ေသာနည္းအတိုင္း command line utility ကိုေခၚယူပါ။ (ပံု-၁) အတိုင္း ျမင္ရမည္ျဖစ္သည္။ ပံု-၁
၄င္းပံုနွင္႔ သင္႔ ကြန္ျပဴတာ ေပၚရွိ command prompt တို႔ အနည္းငယ္ ကြဲျပားနိုင္ပါသည္။ Windows version နွင္႔ user name တို႔ မ်ားေသာအားျဖင္႔ ကြဲျပားျခားနားေလ႔ရွိပါသည္။ ပံု-၁ တြင္ ေအာက္ဆံုး ၌ C:\Documents and Settings\BluePhoenix> ဟူ ၌ျမင္ရမည္ျဖစ္သည္။ ၄င္းသည္ (Current path+greater than sign ‘>’)တို႔ေပါင္းစပ္ ထားေသာ ပံုစံျဖစ္သည္။ default current path မွာ (Windows drive:\Document and Settings\UserName) ျဖစ္သည္။၄င္းကို prompt ဟူေသာ command ျဖင္႔ေျပာင္းလဲျပဳျပင္၌ရသည္။ ၄င္း command ကိုေနာက္ပိုင္းတြင္ အေသးစိတ္ ရွင္းလင္းတင္ျပပါမည္။ greater than ‘>’ sign ၏ေနာက္တြင္ command မ်ားကို ရိုက္ထည္႔ရန္ျဖစ္သည္။

Note: DOS command မ်ားသည္ case sensitive မျဖစ္ပါ။ သို႔ေသာ္ ျခြင္းခ်က္ အနည္းငယ္ေတာ႔ရွိပါသည္။ ၄င္းကို သက္ဆိုင္ရာ အခန္း၌ ရွင္းလင္းတင္ျပေပးသြားမည္ျဖစ္ပါသည္။


1. help

ပထမဦးဆံုး command line help ကိုမည္သို႔ေခၚယူရမည္ကို ရွင္းလင္းတင္ျပပါမည္။ command မ်ား အကုန္လံုးကို ကြၽန္ေတာ္တို႔ အတြက္ မွတ္မိေနရန္မွာ မလြယ္ပါ။ သို႔ေသာ္ help command က ကြၽန္ေတာ္တို႔ လိုအပ္ခ်က္ကို ျဖည္႔ဆည္းေပးပါသည္။ ‘>’ ေနာက္တြင္ help ဟု ရုိက္ျပီး enter ေခါက္ပါ။ ပံု-၂ တိုင္းေပၚလာပါလိမ္႔မည္။ ၄င္းတြင္ စုစုေပါင္း command ၇၁ ခု ပါ၀င္ပါသည္။ သို႔ေသာ္ ၄င္း command မ်ားသည္ အျပည္႔ အစံု မဟုတ္ေသးပါ။ ftp command မ်ား အစရွိေသာ networking နွင္႔အျခား command မ်ားကို Window XP ၏ Help and Support Center ရွိ command line reference A to Z တြင္ ေလ႔လာနိုင္ပါသည္။ သို႔ရာတြင္ ဤ စာေစာင္တြင္လည္း တတ္နိုင္သမွ် အျပည္႔စံုဆံုး ရွင္းလင္းတင္ျပသြားမည္ျဖစ္ပါသည္။
ပံု-၂
ဆက္လက္ဖတ္ရွဳရန္
ျပန္ပိတ္ရန္


Understanding and application of Windows XP command line utility in real life (၁)
ဒီ ေဆာင္းပါးကို ပလန္းနက္ မွာ က်က္စားစဥ္က ပံုမွန္ေရးျဖစ္ခဲ႔ပါတယ္။ ေနာက္ပိုင္း ပ်င္းတာနဲ႔ သိမ္းမထားမိဘူး။ ေနာက္ ပလန္းနက္ ဆာဗာ ေၾကာင္ေတာ႔ ကုန္ပါေလေရာလား။ အဲဒီထဲက စျပီး ကြန္ျပဴတာအေၾကာင္းမေရးေတာ႔တာ နွစ္ နွစ္ေလာက္ရွိပါျပီ။ ခု စီေဘာက္စ္ မွာ တစ္ေယာက္က ေတာင္းဆိုလာတာ ကို သတိရလို႔ ရွိသေလာက္ ျပန္တင္ေပးလိုက္ရေၾကာင္းပါဗ်ာ။

မိတ္ဆက္
အစပထမတြင္ကြၽန္ေတာ႔အေနျဖင္႔ command line utility အေၾကာင္းေရးရန္ မ၀ံ႔မရဲျဖစ္ေနမိသည္။ လြန္စြာရိုးရွင္းလြယ္ကူေသာ Microsoft ၏ Windows operating system က user မ်ားကို command မ်ားအစား visual interface မ်ားျဖင္႔ ခိုင္းေစ အသံုးျပဳခြင္႔ေပးထားၾကျခင္းေၾကာင္႔ျဖစ္သည္။ အမ်ားစုကလည္း command မ်ားျဖင္႔အသံုးျပဳရျခင္းကို ေခတ္ေနာက္က်ေနခဲ႔ေသာ နည္းပညာတစ္ခုဟု ထင္ျမင္တတ္ၾကသည္။ အခ်ိဳ႔ကလည္း hacker မ်ားအသံုးျပဳရန္သက္သက္ျဖစ္သည္ဟု နားလည္ထားၾကသည္။ beginner မ်ားအေနျဖင္႔မူ မိမိတို႔၏ ေနာက္ဆံုးေပၚ Windows system တြင္ command line utility ပါရွိသည္ကိုပင္ မသိၾကေပ။ မၾကာမီက အေမရိကေရာက္ ျမန္မာတစ္ေယာက္မွ email ျဖင္႔ command မ်ားကို မည္သို႔ေလ႔လာရမည္ ကို အေမးရွိဖူးသည္။ ထို႔ျပင္ computer အထူးျပဳျဖင္႔ သင္ၾကားေနၾကေသာ beginner student မ်ားက ေမးျမန္းၾကသည္ကိုလဲ မၾကာခဏ ၾကံဳေတြ႔ေနရသည္။ ထို႔ေၾကာင္႔ ကြၽန္ေတာ္၏ စိတ္ထဲတြင္ ၄င္းအေၾကာင္းမ်ားကို အျပည္႔အစံု မဟုတ္သည္႔တိုင္ တစ္စိတ္ တစ္ပိုင္းအျဖစ္ တင္ျပလိုေသာ ေစတနာျဖင္႔ မိမိနားလည္သမွ် လက္ေတြ႔ဘ၀တြင္ အသံုးမ်ားေသာ command မ်ားႏွင္႔အသံုးျပဳပံုမ်ားကို ေရးသားတင္ျပလိုက္ရျခင္းျဖစ္ပါသည္။

သမိုင္းေၾကာင္း
Windows XP command line utility အေၾကာင္းမေျပာမီ ၄င္း၏ ျဖစ္ေပၚလာပံု သမိုင္းေၾကာင္း အက်ဥ္းခ်ဳပ္ကို အနည္းငယ္ေျပာျပလိုပါသည္။ command line utility ၏ အစမွာ မ်ားစြာ စိတ္၀င္စားစရာေကာင္းလွပါသည္။ ၁၉၈၀ ျပည္႔နွစ္မ်ားတ၀ိုက္တြင္ IBM company က မည္သူမဆို လြယ္ကူစြာ ၀ယ္ယူအသံုးျပဳနိုင္ရန္ တစ္ကိုယ္ေရသံုး ကြန္ျပဴတာ (PC) မ်ားထုတ္လုပ္ရန္စီစဥ္ခဲ႔သည္။ သို႔ေသာ္ ၄င္းကြန္ျပဴတာမ်ားကို ေမာင္းႏွင္ခိုင္းေစရန္ operating system(OS) အဆင္သင္႔မရွိေသးေပ။ ထိုအခ်ိန္က ထြက္ရွိသမွ် အေကာင္းဆံုး OS မွာ ဂယ္ရီေကဒယ္ (Gary Kildall) ၏ CP/M (Control program for Microcomputers)) ျဖစ္သည္။ Gary သည္ computer နယ္ပယ္တြင္ PhD ရရွိထားျပီး သူ၏ OS မ်ားမွာ ထိုစဥ္က အေအာင္ျမင္ဆံုးလည္းျဖစ္ခဲ႔သည္။ ထို႔ေၾကာင္႔ IBM က ပထမဆံုး Gary ကို ဆက္သြယ္ခဲ႔သည္။ သို႔ရာတြင္ Gary က IBM ႏွင္႔စာခ်ဳပ္ ခ်ူပ္ဆိုရန္ ျငင္းပယ္လိုက္ရာမွ Bill Gates ႏွင္႔ဆက္သြယ္ကာ Microsoft company ႏွင္႔စာခ်ဳပ္ခ်ဳပ္ခဲ႔သည္။ ထိုစာခ်ဳပ္အရ Microsoft က Gary ၏ CP/M OS ကို တိုက္ခိုက္ေခ်ဖ်က္ရန္ ပိုမိုေကာင္းမြန္ေသာ OS တစ္ခု ေရးေပးရန္ျဖစ္သည္။ ဤသို႔ျဖင္႔ Microsoft ၏ ပထမဦးဆံုး OS ျဖစ္ေသာ Microsoft Disk Operating System ေပၚထြက္လာခဲ႔ျခင္းျဖစ္ပါသည္။
တကယ္ေတာ႔ MS DOS သည္ Seattle Computer Products မွ programmer Tim Paterson ေရးသားထားေသာ QDOS (Quick and dirty operating system) ကိုအေျခခံထားျခင္းျဖစ္သည္။ QDOS သည္လည္း Gary ၏ CP/M ကိုပင္ မွီး၍ ေရးသားထားျခင္းျဖစ္သည္။ Paterson က CP/M ၏ manual ကို၀ယ္ယူခဲ႔ျပီး ေျခာက္ပတ္အတြင္း QDOS ကိုအျပီးေရးသားခဲ႔ျခင္းျဖစ္သည္။ သို႔ေသာ္ QDOS သည္ CP/M ႏွင္႔ တရား၀င္ ကြဲျပားျခားနားလ်က္ရွိသည္။ Microsoft က ၄င္း QDOS ကို ေဒၚလာ 50000 ႏွင္႔ Microsoft company မွ၀ယ္ယူကာ အနည္းငယ္ျပဳျပင္၍ MS DOS ဟု အမည္ေျပာင္းေပးကာ IBM ႏွင္႔ အျခား တစ္ကိုယ္ေရသံုး ကြန္ျပဴတာမ်ား ထုတ္လုပ္ေရာင္းခ်ေသာ company မ်ားအား လိုင္စင္ယူ ၍ ေရာင္းခ်ခဲ႔ရာမွ DOS (Disk operating system) ကို တြင္က်ယ္စြာ စတင္အသံုးျပဳလာၾကျခင္းျဖစ္သည္။ ေနာက္ပိုင္းတြင္ Paterson သည္ Seattle Computer Products မွအလုပ္ထြက္၍ Microsoft ႏွင္႔ပူးေပါင္းခဲ႔သည္။ ထိုစဥ္က Paterson ေျပာခဲ႔ေသာ စကားတစ္ခြန္းမွာ သမိုင္းတြင္ခဲ႔သည္။ သူက (Life begins with a disk drive) ( ဘ၀ ဟာ disk drive တစ္ခု မွအစျပဳသည္ ) ဟုေျပာခဲ႔ျခင္းျဖစ္သည္။ ၄င္းေျပာခဲ႔သလိုပင္ DOS ေၾကာင္႔ လူမ်ား၏ လူေနမွဳဘ၀ စတင္ေျပာင္းလဲလာခဲ႔ရသည္ဟု ဆိုခ်င္က ဆိုႏိုင္ေပသည္။
သို႔ေသာ္ Apple company မွ Macintosh OS ႏွင္႔ Microsoft မွ Windows OS ကို စတင္ မိတ္ဆက္လာသည္႔အခါ လူအမ်ားက အလြယ္တကူအသံုးျပဳနိုင္သည္႔ Visual interface စံနစ္ကို တစ္ခဲနက္ အားေပးခဲ႔ၾကသည္။ ထိုအခါမွ အစျပဳ၍ DOS ၏ အေရးပါမွဳေမွးမွိန္လာခဲ႔သည္။ သို႔ရာတြင္ အစပ်ိဳး Windows OS မ်ားသည္ DOS ေအာက္တြင္ အလုပ္လုပ္ေသာ interface program တစ္ခုသာျဖစ္ခဲ႔သည္။ သို.ရာတြင္ ေနာက္ပိုင္း Windows OS မ်ားသည္ ျပည္႔စံုေသာ Visual interface OS မ်ားျဖစ္လာျပီး DOS သည္ ၄င္း Windows မ်ား၏ ေအာက္ မွ command shell တစ္ခုအျဖစ္သို႔ေျပာင္းလဲခဲ႔ရသည္။
ထိုသို႔ User အမ်ားစု၏ ေမ႔ေပ်ာက္ျခင္းကို ခံရေသာ္လည္း command မ်ားကို အသံုးျပဳ၍ ကြန္ျပဴတာအား ခိုင္းေစရာတြင္ အားသာခ်က္မ်ားစြာ ရွိေနေပေသးသည္။ ၄င္းအားသာခ်က္မ်ားကို သိရွိနားလည္ထားၾကေသာ administrator မ်ားႏွင္႔ hacker မ်ား၊ power user မ်ားက command line utility ကို ထိထိေရာက္ေရာက္ ဆက္လက္အသံုးျပဳေနၾကေပသည္။

Ref:

1. http://en.wikipedia.org/wiki/MS_DOS
2. http://www.linfo.org/ms-dos.html
3. http://www.patersontech.com/Dos/Byte/History.html

ဆက္လက္ဖတ္ရွဳရန္
ျပန္ပိတ္ရန္

Windows XP မွာ sound problem ေတြကို ဘယ္လို ေျဖရွင္းမလဲ?
ဒီေဆာင္းပါးမွာ Windows XP ရဲ့ အသံပိုင္းဆိုင္ရာ ျပႆနာေတြကို ဘယ္လိုေျဖရွင္းႏိုင္မလဲဆိုတာ တင္ျပထားပါတယ္။
ဘယ္လိုျပႆနာေတြလဲ?

* Speaker ေတြ၊ Headphone ေတြက ဘာသံမွထြက္မလာဘူး။
* Sound ဖြင့္ထားစဥ္မွာ ရုတ္တရက္ ရပ္သြားတယ္။
* အသံက ျပတ္ေတာင္းျပတ္ေတာင္း ျဖစ္ေနတယ္။
* အသံက ပံုမွန္မဟုတ္ဘဲ စူးေနတယ္ (သို႔မဟုတ္) ေအာေနတယ္။
* Sound တစ္ခုခုကို Play လိုက္ရင္ ကြန္ျပဴတာ hang သြားတယ္။
* Sound တစ္ခုခုကို Play လုိက္တိုင္း Computer က Restart ျဖစ္ျဖစ္သြားတယ္။
* Sound တစ္ခုခု Playဖို႔ ႀကိဳးစားတိုင္း ေအာက္မွာ ေဖာ္ျပထားတဲ့ ဥပမာေတြထဲက error message မ်ိဳးေတြ တက္လာတယ္။

· MIDI output error detected.
· No wave device that can play files in the current format is installed.
· The CD Audio device is in use by another application.
· WAV sound playback error detected.
· Your audio hardware cannot play files like the current file.
ဒီလိုျပႆနာမ်ိဳးေတြကို ေအာက္မွာေဖာ္ျပထားတဲ့ နည္းလမ္းေတြနဲ႔ ေျဖရွင္းၾကည့္ပါ။
နည္းလမ္း (၁) ။ Windows XP Sound Troubleshooter ကိုသံုးမယ္။
(၁) Start ကို ႏိွပ္ပါ။ Help and Support ကို ႏိွပ္ပါ။
(၂) Pick a Help Topic ေအာက္က Fixing a problem ကို ႏိွပ္ပါ။
(၃) Games, sound, and video problems ကို ႏိွပ္ပါ။
(၄) Sound Troubleshooter ကို ႏိွပ္ပါ။
(၅) PC မွာျဖစ္ေနတဲ့ Problem ကို ေဖာ္ျပထားတဲ့ Option ကို ေရြးၿပီး Next ကို ႏိွပ္ပါ။
Problem ေျပလည္သြားသည့္တိုင္ေအာင္ ညႊန္ၾကားခ်က္ေတြအတိုင္း အဆင့္ဆင့္ ေျဖရွင္းသြားပါ။ မရေသးရင္ နည္းလမ္း(၁) ကို ထပ္လုပ္ပါ။
မိမိလုပ္ခဲ့တဲ့ ေနာက္ဆံုး အဆင့္ကုိ ျပန္သြားခ်င္ရင္ Back ကို ႏိွပ္ပါ။ Sound Troubleshooter ကို ထပ္လုပ္မယ္ဆိုရင္ Start Over ကို ႏွိပ္ပါ။
နည္းလမ္း (၂) ။ Sound card driver ေတြကို Update လုပ္မယ္။
Microsoft Update ကို အသံုးျပဳၿပီး Update ျဖစ္တဲ့ Sound card driver ေတြ ရႏိုင္မလား၊ မရႏိုင္ဘူးလား စစ္ၾကည့္ပါ။ Updated driver ေတြကို ရႏိုင္/ မရႏိုင္ http://www.update.microsoft.com မွာ ၾကည့္ပါ။ Sound card Update နဲ႔ပတ္သက္ၿပီး http://support.microsoft.com/kb/812394 မွာ တဆင့္ခ်င္း ရွင္းျပထားပါတယ္။ ၀င္ဖတ္ၾကည့္ပါ။

What to Do When Windows Gets Really Messed Up
PC မွာ error information ေတြပါတဲ႔ အျပာေရာင္ Screen တတ္လာရင္ ဘယ္လိုလုပ္မလဲ?
ကြန္ျပဴတာမွာ အျဖဴေရာင္စာသားေတြပါတဲ့ Screen ျပာ ရုတ္တရက္တက္လာတာမ်ိဳး ႀကံဳဖူးတဲ့သူေတြ ရိွမွာပါ။ A problem has been detected and Windows has been shut down… စတဲ့ information မ်ိဳးေတြ ဖတ္ဖူးၾကမွာပါ။ ဒီျပႆနာကို Blue Screen of Death (BSoD) လို႔ေခၚၾကပါတယ္။ Microsoft ကေတာ့ Stop errors လို႔ ေခၚပါတယ္။

ကြန္ျပဴတာမွာ လုပ္လက္စ အလုပ္ေတြကို Save မလုပ္ရေသးခင္ ဒီလို ျပႆနာမ်ိဳး ရင္ဆိုင္လာရရင္ Dataေတြ ဆံုးရံႈးသြားတာကို ႏွေျမာတသေနရံုကလြဲလို႔ တျခားဘာမွမတတ္ႏိုင္ပါဘူး။ ကြန္ျပဴတာကို Reboot လုပ္ၾကည့္ပါဦး။ ဒီျပႆနာ ဆက္ျဖစ္ေနေသးသလား။ ေျဖရွင္းဖို႔ နည္းလမ္းေတြ ရိွပါတယ္။
ဒီ Problem ကို ေျဖရွင္းဖို႔ အသံုး၀င္မယ့္ Information ေတြ အဲဒီ Screenျပာေပၚမွာ ပါတယ္။ ကြန္ျပဴတာကို Reboot ထပ္မလုပ္ခင္ အဲဒီ Screenျပာေပၚမွာ ေပၚေနသမွ် Technical Information ေတြကို စာရြက္တစ္ရြက္ေပၚမွာ ခ်ေရးပါ။

(၁) Start ကိုႏွိပ္၊ Run မွာ devmgmt.msc ကို ရိုက္ၿပီး ၀င္ပါ။
(၂) Question mark ျပထားတဲ့ Drive ကို Double click ႏိွပ္ၿပီး၊ Driver tab ကို ႏိွပ္ပါ။ ၿပီးရင္ Roll Back Driver button ကို ႏိွပ္ပါ။
တကယ္လို႔ Drive အသစ္တစ္ခုခု ထပ္တပ္ထားရင္ အဲဒီ Drive အတြက္ Update Driver tab ကို ႏွိပ္ၿပီး Web site မွာ Update ေပးထားသလား ၾကည့္ပါ။ ေပးထားရင္ Update လုပ္လိုက္ပါ။





RAM ပ်က္စီးေနတာေၾကာင့္လည္း BSoD ျပႆနာ ျဖစ္ႏိုင္ပါတယ္။ RAM module ေတြ ပ်က္/ မပ်က္ ကို Memtest 86 နဲ႔ အလြယ္တကယ္ စစ္ေဆးလို႔ရပါတယ္။ ဒီ Program ကို Memtest.org မွာ Download လုပ္လုိ႔ရပါႏိုင္ပါတယ္။ Memtest ဟာ Windows program မဟုတ္ပါဘူး။ Windows တက္မလာခင္ကတည္းက Memtest ကို boot လုပ္ထားရပါမယ္။ ဒီ Program ကို CD image .iso file type အျဖစ္နဲ႔ Download လုပ္ၿပီး Bootable CD တစ္ခ်ပ္မွာ Burn ထားပါမယ္။ ၿပီးရင္ အဲဒီ CD ကို ထည့္ Boot လုပ္ၿပီး Memtest Program က Problem တစ္ခုခုကို ရွာေတြ႔/ မေတြ႔ စစ္ၾကည့္ပါ။
ေနာက္ထပ္ ျဖစ္ႏိုင္တာေတြကေတာ့ Windows Problem ေတြပါပဲ။ Registry ထဲမွာ အျပစ္တစ္ခုခု ရိွေနတာေၾကာင့္လည္း ျဖစ္ႏိုင္ပါတယ္။ Registry Cleaner ကို Run ၿပီး စမ္းၾကည့္ပါ။ ကၽြန္ေတာ္ကေတာ့ ToniArts' EasyCleaner ကို Free Download လုပ္ၿပီး စမ္းၾကည့္ဖို႔ အႀကံျပဳပါတယ္။


တကယ္လို႔ အခုတင္ျပခဲ့တဲ့ နည္းေတြနဲ႔ ေျဖရွင္းလို႔မွ မရရင္ေတာ့ Professional တစ္ေယာက္ေယာက္ဆီသြားျပပါလို႔ အႀကံျပဳလုိက္ပါရေစ။
USB Drive တစ္ခုခုကို ျဖဳတ္တဲ့အခါ Ejecting Problem ျဖစ္ေနရင္ ဘယ္လိုျဖဳတ္မလဲ။
ကြန္ျပဴတာအသံုးျပဳသူအားလံုး ရင္ဆိုင္ရဖူးတဲ့ ျပႆနာေတြထဲက တစ္ခုပါ။ USB Drive ကို Safely Remove Hardware Icon ေလး ႏိွပ္ၿပီး ျဖဳတ္ေပမယ့္ The Device ‘Generic Volume’ cannot be stopped right now. Try stopping the device again later. ဆိုတဲ့ Ejecting Problem message box တက္လာတတ္ပါတယ္။





အဲဒီလိုျဖစ္လာရင္ USB Drive ထဲက Program ေတြ၊ File ေတြ Floder ေတြ ဖြင့္ထားသလား Task Bar နဲ႔ System Tray မွာ စစ္ၾကည့္ပါ။ ဖြင့္ထားရင္ ဖြင့္ထားတာေတြ အားလံုးကို ျပန္ပိတ္ၿပီး USB Drive ကို ျဖဳတ္ၾကည့္ပါ။ မရေသးရင္ USB Drive နဲ႔ ဆက္ႏြယ္ခဲ႔တဲ့ Program ေတြဖြင့္ထားရင္ ပိတ္ၿပီး ျပန္ျဖဳတ္ၾကည္႔ပါ။ ျပႆနာ တက္ေနေသးရင္ ဒီျပႆနာကို ေျဖရွင္းဖို႔ နည္းလမ္းေတြ ရိွပါတယ္။

ပထမနည္းလမ္းကေတာ့ Task Manager ကိုဖြင့္ၿပီး ေျဖရွင္းပါမယ္။ Ctrl+Alt+Delete ကို ႏိွပ္ပါ။ Windows Vista မွာေတာ့ Start Task Manager ကို ႏိွပ္ပါ။ Processes Tab ကို ႏိွပ္ပါ။ Processes List ထဲမွာ USB Drive ကလို႔ထင္ရတဲ့ Process တစ္ခုခုကို ေရြးခ်ယ္ပါ။ End Process Tab ကို ႏိွပ္ပါ။ ၿပီးရင္ Safely Remove Hardware Icon ကို ႏိွပ္ၿပီး ျဖဳတ္ၾကည့္ ပါ။





အဲဒီလုပ္လို႔မွမရရင္ ခုနက Process ကို Right click ႏိွပ္ၿပီး End Process Tree ကို ႏိွပ္ပါ။ USB Drive ကို ျဖဳတ္ၾကည့္ပါ။

ဒုတိယနည္းလမ္းကေတာ့ ကြန္ျပဴတာကို Shut Down လုပ္ၿပီး USB Drive ကို Remove လုပ္တဲ႔နည္းပါပဲ။ ဒါေပမယ့္ ဒီနည္းကေတာ့ Computer ကို Reboot လုပ္ရမွာမို႔ အခ်ိန္ကုန္ပါတယ္။

တကယ္လို႔ အခု ေဖာ္ျပခဲ႔တဲ့ နည္းလမ္းေတြကို အသံုးျပဳလို႔မွ မေအာင္ျမင္ခဲ့ရင္ ေနာက္နည္းလမ္းတစ္ခုကို သံုးပါမယ္။ USB Safely Remove Program ကို Download လုပ္ၿပီး Install လုပ္ပါ။ အဲဒီ Program ဟာ System Tray ထဲက Safely Remove Hardware ေနရာမွာ Icon တစ္ခုေနနဲ႔ ေပၚေနမွာ ျဖစ္ပါတယ္။ ဒီ Program ကို သံုးၿပီး ဘယ္ Process ေတြေၾကာင့္ ဒီ ျပႆနာ ျဖစ္ရသလဲ ဆိုတာ သိႏိုင္သလို၊ ျပႆနာကို ေျဖရွင္းႏိုင္မွာ ျဖစ္ပါတယ္။ အဲဒီ Program မွာ အျခား Feature ေတြလည္း ပါရိွေသးတယ္။ USB Drive ေတြကို နာမည္ ေျပာင္းၿပီး၊ Drive တစ္ခုစီကို ရပ္ဖို႔ Hot-key တစ္ခုစီကို Set လုပ္ၿပီး၊ Auto Run Option ေလးေတြ လုပ္လို႔ရတယ္။ တကယ္လို႔ Program ေတြ Auto loading လုပ္တာ မလိုလားရင္ Run on Windows Startup Option ကို 0ff ထားၿပီး၊ USB Safely Remove Program ကို လိုအပ္တဲ့ အခ်ိန္မွာပဲ ဖြင့္ၿပီး အသံုးျပဳႏိုင္ပါတယ္မယ္။
How to fix System Restore?
PC မွာ Restore Point ေဟာင္းေတြ မရိွေတာ့ဘူး။ Windows ကလည္း Restore Point ေတြ ေနာက္ထပ္ ဖန္တီးမေပးေတာ့ဘူး။ System Restore ကို ဘယ္လို ျပန္ျပင္မလဲ ???

Windows XP နဲ႔ Vista မွာ System Restore ဟာ Registry နဲ႔ အေရးၾကီးတဲ႔ System file ေတြကို အလိုေလ်ာက္ မၾကာခဏ ထိန္းသိမ္းထားေပးပါတယ္။ ဒါေပမယ့္ System Restore က Back up ေတြ Restore Point ေတြကို ဖန္တီး မေပးႏိုင္ေတာ့တဲ႔ အေျခအေနေတြ ရိွလာတတ္ပါတယ္။
Free Space အလံုအေလာက္ မရိွတဲ့အခါ။ Restore Point တစ္ခုကို create လုပ္ဖို႔ System Partation (သို႔) System Drive မွာ အနည္းဆံုး Free Space 200 MB လိုပါတယ္။ တကယ္လို႔ Free Space လံုလံုေလာက္ေလာက္ မရိွခဲ့ရင္ PC ဟာ Restore Point အသစ္ေတြကို ဆက္လက္ Create လုပ္ေပးေတာ့မွာမဟုတ္ပါဘူး။ ၿပီးေတာ့ ရိွျပီးသား Restore Point ေတြကိုလည္း ဖ်က္ပစ္ႏိုင္ပါတယ္။
Task Scheduler အလုပ္ မလုပ္တဲ့အခါ။ System Restore ဟာ Restore Point ေတြကို ေန႔စဥ္အလိုေလ်ာက္ Create လုပ္ေပးႏိုင္ဖို႔ Windows ရဲ့ Task Scheduler ကို အသံုးျပဳပါတယ္။ Task Scheduler အလုပ္ လုပ္/မလုပ္ စစ္ေဆးဖို႔ Start ကိုႏိွပ္၊ Run မွာ services.msc ကို ရိုက္ျပီး ၀င္ပါ။ Services Dialog Box ေပၚလာရင္ Scroll Bar နဲ႔ ေအာက္ကိုဆင္း၊ Task Scheduler မွာ Right Click ႏိွပ္ၿပီး Properties ကို ေရြးပါ။ Service Status မွာ Start လုပ္မထားေသးရင္ Start ကို ႏိွပ္ပါ။ ၿပီးရင္ Startup Type မွာ Automatic ကို ေရြးၿပီး OK ကို ႏိွပ္ပါ။
Operating System မရပ္မနား အၿမဲအလုပ္လုပ္ေနရတဲ့အခါ။ System Restore ဟာ PC ဖြင့္ထားေပမယ့္ အလုပ္မလုပ္ဘဲ နားေနတဲ့အခ်ိန္ (Idel State)မွာ Restore Point ေတြကို အလိုေလ်ာက္ အၿမဲ ဖန္တီးေပးပါတယ္။ PC ကို အၿမဲ ပိတ္ထားရင္ ဒါမွမဟုတ္ အၿမဲအလုပ္လုပ္ေနရင္ System Restore ဟာ အလုပ္လုပ္မွာ မဟုတ္ပါဘူး။
System Restore ဟာ ပံုမွန္ အလုပ္လုပ္ေနရင္ေတာင္မွ Restore Point တိုင္းကို အသံုးျပဳလုိ႔မရပါဘူး။ Restore Point တိုင္းဟာ ျပည့္စံုတဲ့ Back up ေတြ မဟုတ္ပါဘူး။ Restore Point တစ္ခုစီဟာ ယခင္ Restore Point ေနာက္ပိုင္းမွာ ျဖစ္ခဲ့တဲ့ ေျပာင္းလဲမႈေတြကိုသာ ထိန္းသိမ္းထားပါတယ္။ မူလအေျခေနေကာင္းတစ္ခုခုကို ျပန္လည္ရယူႏိုင္ဖို႔ System Restore ဟာ Restore Point ေတြအားလံုးကို အသံုးျပဳရတဲ့ အေျခေနေတြၾကံဳလာတတ္ပါ တယ္။ အဲဒီလိုၾကံဳလာရတဲ့ အေျခအေနမ်ိဳးမွာ Restore Point တစ္ခုခု ပ်က္စီးသြားခဲ႔မယ္ဆိုရင္ တျခား Restore Point ေတြကိုလည္း သံုးလို႔ရေတာ့မွာမဟုတ္ပါဘူး။
တကယ္လို႔ အလုပ္ဆက္လုပ္ဖို႔ Restore Point တစ္ခုမွ မရႏိုင္ေတာ့ဘူးဆိုရင္ Restore Point အားလံုးကို ဖ်က္ပစ္ပါ။ System Restore ကို Off လုပ္ျပီး ျပန္ On ပါ။ Window XP မွာ Start ကို ႏိွပ္ျပီး Run မွာ sysdm.cpl ကို ေရးၿပီး ၀င္ပါ။ System Restore Properties Dialog Box မွာ System Restore Tab ကို ႏိွပ္ၿပီး Turn off System Restore on all drives ေဘးမွာ အမွန္ျခစ္ကေလး ေပးလုိက္ပါ။ Apply ကို ႏိွပ္ပါ။ ၿပီးရင္ ေစာေစာက အမွန္ျခစ္ထားတာ ေလးကို ျပန္ျဖဳတ္ၿပီး OK ကို ႏိွပ္ပါ။ Window Vista မွာဆိုရင္ Start ကို ႏိွပ္ၿပီး sysdm.cpl ကိုေရးၿပီး Enter ကို ႏိွပ္ပါ။ System Protection tab ကို ႏိွပ္ၿပီး ဒါမွမဟုတ္ open System Protection ကို ေရြးခ်ယ္ၿပီး Local Disk (C:) ေဘးက အမွန္ျခစ္ေလးကို ျဖဳတ္ပါ။ System Restore Pop-up မွာ Turn off System Restore ကို ေရြးခ်ယ္ပါ။ Apply ကို ႏိွပ္ပါ။ ၿပီးရင္ Local Disk (C:) ကို ျပန္စစ္ေဆးၿပီး OK ကို ႏိွပ္ပါ။


DES (10) - Iteration ၿပဳလုပ္ၿခင္းနွင့္ PC-2
ဒီ PC-1 အရ 64bits ကေန 56 bits ေၿပာင္းတယ္ဆိုေတာ့ နဂို 64bits ကေန 8bits ေလ်ာ့သြားပါတယ္။ အဲဒါေတြကေတာ့ 8,16,24,32,40,48,56 နဲ႔ 64 ခုေၿမာက္ bits ေတြ ၿဖစ္ပါတယ္။

အဲဒီ 56bits ကိုမွ C နဲ႔ D ခြဲ၇မွာ ၿဖစ္ၿပီး ပထမ 28bits (1-28¬) ဟာ C ၿဖစ္ၿပီး ေနာက္က 28bits (29-56) ဟာ D ၿဖစ္ပါတယ္။ C0 နဲ႔ D0 ရၿပီ ဆိုရင္ Left shift (ဘယ္ဘက္သို႔ အစားထိုးၿခင္း) ၿပဳလုပ္ရမွာ ၿဖစ္ပါတယ္။ C နဲ႔ D အတြက္ left shift 16 rounds ရွိပါတယ္။ Iterarion ဖယား ကိုေတာ့ ေအာက္မွာ ေဖာ္ၿပလိုက္ပါတယ္။


ဒီဇယားအရ C0 နဲ႔ D0 အတြက္ left shift ဟာ 1 ၿဖစ္ပါတယ္။ ဒီေတာ့ C0 ရဲ႕ 1st ေနရာက bit ဟာ 32nd ေနရာကို ေရာက္မွာၿဖစ္ၿပီး အရင္ 32nd က 31st ၿဖစ္သြားမွာၿဖစ္ပါတယ္။ D0 ဟာလဲ ဒီအတိုင္း ၿဖစ္ပါတယ္။ C0 နဲ႔ D0 ကို shifted လုပ္ၿပီးရင္ C1 (28 bits) နဲ႔ D1 (28 bits) ရမွာၿဖစ္ပါတယ္။ အဲဒီ 56bits ကို Permuted choice -2 (PC-2) အရ ေနရာေရႊ႕လိုက္ရင္ key1 အတြက္ 48bits ရပါၿပီ။ ပံု(၁၂) မွာၾကည့္ပါ။



ပံု(၁၂)
အခုရထားတဲ့ Key1 (48btis) ဟာ function ထဲမွာ E-bits (48bits) နဲ႔ XOR ၿပဳလုပ္ရမွာ ၿဖစ္ပါတယ္။ အရင္ရထားတဲ့ C1 နဲ႔ D1 ကိုသံုးၿပီး key algorithm ကအတိုင္း left shift ဇယား နဲ႔ တြဲၿပီး ဆက္လုပ္ရင္ C2 နဲ႔ D2 ကိုရမွာပါ။ အဲလို ဆက္လုပ္သြားရင္ key 16 round အတြက္ရမွာပါ။

DES (09) - KEY ၿပဳလုပ္ၿခင္း
Key algorithm မွာလည္း encryption algorithm မွာလိုပဲ 16 round ရွိပါတယ္။ key algorithm အတြက္ Input ဟာ 64 bits ၿဖစ္ပါတယ္။ Input key 64 bits ကေတာ့ password သေဘာမ်ိဳးနဲ႔ ၾကိဳက္တာ ထားႏူိင္ပါတယ္။ ဒါေပမဲ့ တခု သတိထား ရမွာက key ဟာ Text အေရအတြက္ထက္ နဲလို႔ မရပါဘူး။ (ဥပမာ Text ဟာ 64 bits(3 rounds) ဆိုရင္ Key ဟာလည္း 64 bits(3 rounds) ရွိရမွာ ၿဖစ္ပါတယ္) ။ Key algorithm အရ input 64 bits ကို permuted choice 1 (PC1) အရ permutation လုပ္ရင္ 56 bits ရမွာ ၿဖစ္ပါတယ္။ Key algorithm နဲ႔ PC1 ကိုေတာ့ ေအာက္မွာ ေဖာ္ၿပလိုက္ပါတယ္။




ပံု (၁၀)
ပံု (၁၁)
Key algorithm နဲ႔ PC1



Programmer အႀကိဳက္ Online ရတနာသုိက္မ်ား
from Knowledge is Free by kmo
6 people liked this

ပ႐ုိဂရမ္းမင္း (Programming) ဘာသာရပ္ကုိ ေလ့လာလုိသူမ်ားအတြက္ Online ေပၚက ရင္းျမစ္ (resources) ေတြကို ညႊန္းခ်င္ပါတယ္။ ပညာရပ္တစ္ခုဆုိတာ ေလ့လာေလ နက္နဲေလ၊ ရွာေဖြေလ ေတြ႕ရွိေလပါပဲ။ ပုိၿပီး က်ယ္ျပန္႔စြာသိခ်င္ရင္ Online မွာ Programming နဲ႔ coding ေတြအတြက္ ရွာႏုိင္တဲ့ေနရာေတြ အမ်ားႀကီးပါ။

Java
Trail: Learning the Java Language
http://java.sun.com/docs/books/tutorial/java/TOC.html

Sun Microsystem ရဲ႕ Java 'Trail' ကေတာ့ တကယ္ေကာင္းတဲ့ site လုိ႔ ေျပာရမယ္။ Java ကုိ ေလ့လာတုန္းက နားမလည္တာေတြ အားလုံး၊ ျပႆနာေတြအားလုံးကို ဒီ site ကေန ေျဖရွင္းေပးႏုိင္တယ္လုိ႔ ညႊန္းၾကပါတယ္။ 'Trail' site က လက္ဦးအစသမားေတြအတြက္ အေတာ္ေလးလုံေလာက္တယ္လုိ႔ ဆုိရမယ္။ ဒီ လုိင္းမွာ objects, classes, inheritances, interface နဲ႔ packages ေတြ အားလုံးနဲ႔ပတ္သက္ၿပီး အေျခခံကစ ရွင္းျပထားပါတယ္။ ဒီေနရာကေန စဥ္းစားဆင္ျခင္ႏုိင္စြမ္းေတြကို concept အေနနဲ႔ အမ်ားႀကီး ရႏုိင္တယ္။ အဆင့္ျမင့္ႀကီးေတြ မေျပာေသးဘဲ အဆင့္လုိက္အေသးစိတ္ကုိ ေလ့လာႏုိင္တယ္။ နားလည္လြယ္တဲ့ ဥပမာေတြ အမ်ားႀကီး ထည့္ၿပီးရွင္းျပထားပါေသးတယ္။

Java Beans
http://www.netbeans.org/kb/trails/java-se.html

Java Beans ကေတာ့ Tutorial ေတြလုပ္ဖုိ႔ တကယ့္စာၾကည့္တုိက္ႀကီး တစ္တုိက္လုိ႔ ေျပာရမယ္။ Java Programmer ေတြအတြက္သာမက C++ နဲ႔ PHP သမားေတြအတြက္ပါ အမ်ားႀကီး ပတ္သက္ေနတဲ့ ေနရာလုိ႔ ေျပာရမယ္။ Java Beans မွာ Java ပ႐ုိဂရမ္အဖဲြ႕၀င္ေတြကလည္း သူတို႔ content ေတြနဲ႔ အမ်ားႀကီး အေထာက္ အကူ ျပဳထားတာ ေတြ႕ရတယ္။ အဖဲြ႕၀င္ေတြက သူတုိ႔ေတြ႕ထားတဲ့၊ သိထားတဲ့ ပ႐ုိဂရမ္ tutorial ေတြကိုလည္း တင္ထားေပးပါတယ္။

Java Lessons
http://javalessons.com

ဒီ website မွာေတာ့ ေလ့က်င့္ခန္းေတြနဲ႔ assignment ေတြ အမ်ားႀကီး သြားေတြ႕လုိက္ရတယ္။ Java Lessons က tutorial ေတြ မ်ားစြာ ေပးထားပါတယ္။ ဒါေပမယ့္ ဥပမာေတြေပးၿပီးေတာ့ပဲ focus လုပ္ထားတယ္။ ဒီ site မွာ mechanics of the language နဲ႔ ႐ႈပ္ေထြးလွတဲ့ statement ေတြရဲ႕ ရည္ရြယ္ခ်က္ေတြကို ေဖာ္ျပထားတယ္။ ပုံစံ အမ်ဳိးမ်ဳိး ရွင္းလင္းခ်က္အဖုံဖုံနဲ႔ စာၾကည့္တုိက္တစ္တုိက္စာေလာက္ ရွင္းလင္းခ်က္ေတြကို ေတြ႕ႏုိင္တယ္။ ဥပမာ တစ္ခုကို click ႏွိပ္လိုက္တာနဲ႔ 'lesson viewer' ကုိ ေတြ႕ႏုိင္ၿပီး အဲဒီအထဲမွာ source code ေတြကို ေနာက္ထပ္ window တစ္ခုနဲ႔ ဖတ္ႏုိင္မွာပါ။ လုိင္းတစ္လုိင္းစီရဲ႕ ရွင္းလင္းခ်က္ေတြကို သိခ်င္ရင္ အျခား window တစ္ခုနဲ႔ ထပ္မံေလ့လာႏုိင္ပါတယ္။ Code လုိင္းေတြေပၚက cursor ကို ဖယ္လုိက္တာနဲ႔ viewer က ဆက္စပ္ေနတဲ့ ရွင္းလင္းခ်က္ေတြကို highlight နဲ႔ ေဖာ္ျပမွာ ျဖစ္ပါတယ္။ အျမင္ပုိင္းဆုိင္ရာကေတာ့ ဒီ website ဟာ သိပ္ၿပီး ေတာ့ ထူးျခားမႈမရွိေပမယ့္ အသုံးက်မႈကေတာ့ တန္ဖုိးျဖတ္လုိ႔ကို မရႏုိင္ပါဘူး။

Java World Community
http://www.javaworld.com/community

Java World ရဲ႕ main page မွာတင္ တကယ္ေကာင္းတဲ့ ေဆာင္းပါးေတြ တင္ထားတာေတြ႕ရမယ္။ ဒီေဆာင္းပါး ေတြဟာ programming နဲ႔ပတ္သက္ၿပီး နားလည္ေစႏုိင္႐ုံမွ်မက ခ်ဲ႕ေတြးမယ္ဆုိရင္ အမ်ားႀကီး ေတြးလုိ႔ရတယ့္ ေဆာင္းပါးေတြ ျဖစ္ပါတယ္။ Java World မွာ community section ဆိုတာပါတယ္။ ဒီ က႑ကေန Java နဲ႔ ပတ္သက္တဲ့ Q&A forum ေတြအျပင္ အျခားသက္ဆုိင္ရာ blog ေတြဆီကိုလည္း သြားႏုိင္ပါလိမ့္မယ္။

Java Coffee Break
http://www.javacoffeebreak.com/

ဒီ site ဟာ Java Coffee Break ရဲ႕ Library of tutorial က အေတာ္ေလးေဟာင္းေနၿပီလုိ႔ ဆုိရမယ္။ ဒီ site မွာ ေရးတဲ့သူေတြက ၁၉၉၆ ေလာက္ကတည္းကေလ။ ဒါေပမယ့္ တကယ့္ language နဲ႔ပတ္သက္ၿပီး ႏႈိက္လုိတဲ့ ေနာက္ေပါက္ေတြ အတြက္ကေတာ့ တန္ဖုိးမျဖတ္ႏုိင္တဲ့ ေနရာႀကီး တစ္ခုပါ။ ကိုယ္ဘာေတြ သိခ်င္လုိခ်င္တယ္ ဆုိတာကုိ ဒီ site မွာ ဆုံးျဖတ္ႏုိင္လိမ့္မယ္ ထင္ပါတယ္။

C++
Visual C++ Developer Centre
http://msdn.microsoft.com/en-us/visualc/default.aspx

C++ ရဲ႕ တရား၀င္ website တစ္ခုပါ။ ဒီဘာသာရပ္နဲ႔ ပတ္သက္တာမွန္သမွ် အားလုံးအေျဖေတြရွိတယ္ဆုိတဲ့ ေနရာမ်ဳိးေပါ့။ Microsoft Developer Network က download နဲ႔ tutorial ေတြ အမ်ားႀကီး ျဖည့္ဆည္းေပးထား တယ္။ C++ ကုိ စတင္ေလ့လာခ်င္သူေတြ၊ စိတ္ပါ၀င္စားၿပီး ကုိယ္ပုိင္ေလ့လာခ်င္သူေတြအတြက္ အေထာက္ အကူျပဳမယ့္ site လုိ႔ ဆုိခ်င္ပါတယ္။

CProgramming.com
http://www.cprogramming.com/
CProgramming.com ဟာ တကယ့္အံ့ခ်ီးဖြယ္ tutorial library ႀကီးလုိ႔ ဆိုႏုိင္တယ္။ C ေရာ C++ အတြက္ပါ အေျခခံကစၿပီး ရွင္းျပႏုိင္တဲ့လုိင္း ျဖစ္ပါတယ္။ OpenGL လုိ ေခါင္းစဥ္ေအာက္ကေန ေလ့လာစရာေတြ အမ်ား ႀကီးပါ။ CProgramming ရဲ႕ ျပႆနာတစ္ခုကေတာ့ update သိပ္မလုပ္တာပဲ ျဖစ္ပါတယ္။ သုိ႔ေသာ္ျငားလည္း ညႊန္းလုိတာကေတာ့ C++ နဲ႔ ပတ္သက္ရင္ ဒီ site မွာ အျပည့္စုံဆုံး ရႏုိင္တယ္ ဆုိတာပဲ။

alt.com.lang.c-c++
http://groups.google.com/group/comp.lang.c++/topics?lnk

Usenet group က C++ နဲ႔ပတ္သက္ၿပီး လႈပ္ရွားေနတဲ့ site လို႔ ေျပာရမယ္။ ဒီ site မွာ ေထာင္ေပါင္းမ်ားစြာ ေသာ ေထာက္ပံ့သူေတြရွိတယ္။ ေမးခြန္းေလးေတြ ျပန္ေျဖတာေတာင္ အေသးစိတ္ ေျဖေပးထားတယ္။ ၁၉၈၆ ႏုိ၀င္ဘာလေလာက္ကတည္းက ေထာင္ေပါင္းမ်ားစြာေသာ post ေတြကုိလည္း ဒီမွာေတြ႕ႏုိင္တယ္။ C++ နဲ႔ ပတ္သက္ၿပီး အေတာ္ေလးလည္း အေတြ႕အႀကဳံဗဟုသုတ ရွိတယ္ဆုိရင္ ဒီအဖဲြ႕ႀကီး ဆက္လက္တည္တံ့ေနတာ ကုိပဲ ေက်းဇူးတင္ထုိက္တယ္။ ဒီအထဲမွာ ေမးခ်က္၊ ေျဖခ်က္၊ ေဆြးေႏြးခ်က္ေတြဟာ တစ္ဦးခ်င္းအေနနဲ႔ ၾကည့္ၾကည့္၊ အဖဲြ႕လုိက္အေနနဲ႔ ၾကည့္ၾကည့္ တန္ဖုိးမျဖတ္ႏုိင္စရာ ရတနာသုိက္ႀကီးပမာ ယေန႔တုိင္ ျဖစ္ေနဆဲလုိ႔ ဆုိႏုိင္တယ္။

LearnCpp.com
http://www.learncpp.com/

အေျခခံက်က် tutorial ေတြနဲ႔ website တစ္ခုေပါ့။ ဒီဘာသာစကားနဲ႔ပတ္သက္ၿပီး အေတြ႕အႀကဳံရွိသူေတြ အတြက္ ရည္စူးၿပီး သီးသန္႔ပညာရွင္ဆန္တဲ့ website လုိ႔ ဆုိႏုိင္ပါတယ္။ ဒီ site ဟာ တကယ့္ေစ်းကြက္၀င္ ပညာရွင္ အဆင့္ဆင့္ေလာက္အထိကို ရည္စူးၿပီး သုေတသန လုပ္ထားတာေတြ တင္ထားတာေၾကာင့္ ခုမွစတင္ ေလ့လာသူေတြအေနနဲ႔ေတာ့ အသက္႐ႈမွားေလာက္တဲ့ site လုိ႔ ဆုိရမယ္။

CPlusPlus.com
http://www.cplusplus.com/

ဒီ site မွာလည္း tutorial ေတြ အမ်ားႀကီး ရွိတယ္။ အမွန္ေတာ့ ဒီ site မွာ ေရာင္းေနတာေတြက လက္ရွိ active ျဖစ္ေနတဲ့ forum ေတြနဲ႔ ဥပမာေကာင္းေကာင္းေတြ စုစည္းခ်က္ေတြပါ။ ဒါေတြကို အလကား မရပါဘူး။ အဲဒီ ခက္ခဲ နက္နဲတဲ့ source code ေတြကို download လုပ္ယူႏုိင္ပါတယ္။ Compiled လုပ္တာေတြ၊ run တာေတြကို အျခား DOS သုိ႔မဟုတ္ Windows နဲ႔ လုပ္ၾကည့္ႏုိင္ပါတယ္။

Visual Basic
Visual Basic Developer Centre
http://msdn.microsoft.com/en-us/vbasic/default.aspx

Microsoft ရဲ႕ တစ္ေက်ာ့ျပန္ ထိပ္တန္းက်တဲ့ website တစ္ခုလုိ႔ ေျပာရမယ္။ Microsoft ရဲ႕ ဒီ Visual Basic website ဟာ C++ page ေတြကုိလည္း ထည့္ေပးထားတယ္။ Tutorial အမ်ဳိးမ်ဳိးကိုလည္း download လုပ္ယူ ႏုိင္တယ္။ စိတ္၀င္စားစရာေကာင္းတာက Video Tutorial ေတြပါ download လုပ္ႏုိင္တာပါ။ Microsoft Developer Network ရဲ႕ C++ page နဲ႔ Sun Microsystem က Java trial ေတြကုိလည္း ဒီ site မွာ ေလ့လာ ႏုိင္တာက ပုိၿပီး အဆင္ေျပေစႏုိင္ပါတယ္။ ေနာက္ေပါက္ ပ႐ုိဂရမ္မာအသစ္ေတြအေနနဲ႔ ဒီ site က video သ႐ုပ္ ျပသင္ၾကားခ်က္ေတြဟာ လြန္စြာေကာင္းေလာက္ေအာင္ အေထာက္အကူ ျဖစ္ေစႏုိင္ပါလိမ့္မယ္။

Mark-up and Scripting Languages
W3Schools
http://www.w3schools.com/
ဒီ site မွာ တကယ္ေကာင္းတဲ့ array of tutorial ေတြကို ျပင္ခြင့္၊ ၀င္ေရးခြင့္ေတြ ရႏိုင္ေအာင္ စီစဥ္ေပးထား တယ္။ ေစ်းကြက္၀င္ script ေတြျဖစ္တဲ့ ASP, CSS, HTML, Javascript, PHP, SQL နဲ႔ XML ေတြ အားလုံး ဒီအထဲမွာ ေလ့လာႏုိင္တယ္။ ဒီ site ရဲ႕ library of tutorials ဟာ အရမ္းက်ယ္ျပန္႔တဲ့သေဘာ ရွိတယ္။ လုိခ်င္ သေလာက္ အေရအတြက္ ဒီမွာမေလ့လာႏုိင္တာကို အဆုိးျမင္လုိ႔ေတာ့ မရဘူး။ သူထည့္ထားသမွ် content ေတြ ဟာ တကယ့္အရည္အေသြးျပည့္ စမ္းသပ္ခ်က္ေတြ ျဖစ္ေနတာကို အသိအမွတ္ျပဳရလိမ့္မယ္။ ဒါေပမယ့္ ဥပမာ ေတြအမ်ားႀကီးေတာ့ ရွိတယ္။ ျပႆနာတစ္ခုခုကို W3School မွာ ႀကိဳက္ရာဘာသာ language နဲ႔ ၀င္ၿပီး ေလ့လာႏုိင္တယ္ဆုိတာက အခြင့္အေရးတစ္ခုလို႔ မွတ္လိုက္ပါ။ ၿပီးျပည့္စုံတဲ့ site တစ္ခုမဟုတ္ေသးေပမယ့္ အစ သမားေတြေရာ၊ ကၽြမ္းက်င္သူေတြပါ အားကိုးထိုက္တဲ့ site ျဖစ္ပါတယ္။

PHPFreaks
http://www.phpfreaks.com/
PHP coding ေတြနဲ႔ပတ္သက္ၿပီး tutorial ေတြအျပင္ တကယ့္ေျပာင္ေျမာက္တဲ့ active forum ေတြကုိပါ ေလ့လာ ႏုိင္ပါတယ္။

HTML:An Interactive Tutorial
http://www.davesite.com/webstation/html/
အေျခခံက်က် tutorial ေကာင္းေကာင္းေတြ ထည့္ထားတယ္။ HTML ကုိ စတင္ေလ့လာခ်င္သူေတြအတြက္ ေကာင္းတယ္။ Coding ေတြအျပင္ website design ေတြကုိပါ အေျခခံကစၿပီး ေလ့လာႏုိင္တယ္။

YourHTMLSource/JavaScript
http://www.yourhtmlsource.com/javascript
JavaScript နဲ႔ ပတ္သက္ၿပီး နိဒါန္းသေဘာေလာက္ေတာ့ ေလ့လာႏုိင္လိမ့္မယ္။ ဒီ site ရဲ႕ အဓိကဟာ URL နဲ႔ ပတ္သက္ၿပီး အႀကဳံျပဳခ်က္ေတြအျပင္၊ HTML နဲ႔ ပတ္သက္ၿပီး focus လုပ္ထားတာေတြေလာက္ပဲ ရွိတယ္။

JavaScript Kit
http://www.javascriptkit.com/javatutors
အေတာ္ေလးေဟာင္းေနတဲ့ website လုိ႔ဆုိရမယ္။ Y2K bug ေတြနဲ႔ပတ္သက္ၿပီး ရွင္းခ်က္ေတြရွိတယ္။ JavaScript နဲ႔ ပတ္သက္ရင္ အရည္အေသြးျပည့္ tutorial ေတြအမ်ားဆုံး စုေဆာင္းထားႏုိင္တဲ့ library တစ္ခု လုိ႔ေတာ့ အသိအမွတ္ျပဳရလိမ့္မယ္။ JavaScript ကုိ အထူးျပဳလုိက္စားသူေတြ အေျခခံက်က် ျပန္ေလ့လာခ်င္ တယ္ဆုိရင္ ၀င္ၿပီးေလ့လာသင့္တဲ့ site လုိ႔ အႀကံျပဳခ်င္ပါတယ္။

SQLzoo.net
http://www.sqlzoo.net/
SQL နဲ႔ ပတ္သက္ၿပီး နိဒါန္းပ်ဳိးေပးထားတဲ့ site လုိ႔ဆုိႏုိင္တယ္။ တကယ့္ interactive ျဖစ္တဲ့ ဥပမာေတြ ေပးထားတာက ေလ့လာခ်င္သူေတြအတြက္ အေထာက္အကူမ်ားစြာ ျဖစ္ေစပါလိမ့္မယ္။

HTML.net
http://www.html.net/
HTML, CSS နဲ႔ပတ္သက္ၿပီး အေျခခံက်က် tutorial ေတြ ထည့္ေပးထားတယ္။ Tutorial ေတြကေတာ့ လက္ခံ ခ်င္လည္း လက္ခံလုိ႔ရသလုိ လက္မခံခ်င္ရင္လည္း ရတဲ့ ဉာဏ္ပြားၿပီးစဥ္းစားစရာ ျပႆနာေတြနဲ႔ ျဖစ္ပါတယ္။ ဒါေပမယ့္ တကယ့္ကို အေျခခံက်က် စဥ္းစားေပးထားတယ္။ သူတို႔နဲ႔ W3School site က tutorial ေတြဟာ သိပ္ မနီးစပ္တာေတြ ျဖစ္ေကာင္းျဖစ္ႏုိင္တယ္။ အေတြ႕အႀကဳံ မရွိေသးသူေတြအတြက္ကေတာ့ အဆင္ေျပစြာ ေလ့က်င့္ႏုိင္မယ့္ ေနရာေကာင္းတစ္ခုလုိ႔ ဆုိႏုိင္ပါတယ္။

The Python Tutorial
http://docs.python.org/tutorial
အ႐ုိးဆုံးအမည္နဲ႔ အရွင္းဆုံး website လုိ႔ ဆုိခ်င္ပါတယ္။ Python Tutorial မ်ားကုိ အေျခခံကစၿပီး ေတြးရင္ ေတြးသေလာက္ ခရီးေရာက္တဲ့ language လုိ႔ ဆုိခ်င္တယ္။ ကုိယ္ပိုင္အေတြးနဲ႔ programming ကုိ တည္ေဆာက္ခ်င္သူေတြအေနနဲ႔ျဖစ္ေစ၊ လြယ္လြယ္နဲ႔စၿပီး အေကာင္းဆုံးရလဒ္ကို ရယူဖန္တီးခ်င္သူေတြ အတြက္ျဖစ္ေစ၊ ဒီ site ကေတာ့ အမွတ္ျပည့္ေပးရမယ့္ site လုိ႔ ဆုိခ်င္တယ္။

Beginners, Non-Programmers
Guide to Python
http://wiki.python.org/moin/BeginnersGuide/NonProgrammers
Python tutorial ေတြ အမ်ားႀကီးေပးထားၿပီး ေနာက္ထပ္ အသစ္ေတြကို ဆဲြေခၚထားတဲ့ site လုိ႔ ဆုိႏုိင္တယ္။ အထူးသျဖင့္ေတာ့ ဒီ site ဟာ ကေလးေတြအတြက္ရည္စူးၿပီး ကေလးပ႐ုိဂရမ္မာေတြ ထြက္ေပၚေရးမ်ား လုပ္ထားသလားလုိ႔ ထင္ရတယ္။ လြယ္လြယ္နဲ႔ ပ႐ုိဂရမ္ကုိ ေလ့လာခ်င္ရင္ ၀င္ၾကည့္ေပါ့။


Serial Port Programming by VB 6.0 (၁)
VB 6.0 ဟာ အခုလို .NET ေတြ တြင္က်ယ္ေနတဲ႔ ေခတ္မ်ိဳးမွာ သိပ္ ေခတ္မစားေတာ႔ပါဘူး။ ဒါေပမယ္႔ portable ပိုျဖစ္တယ္ ဆိုတဲ႔ အခ်က္ေၾကာင္႔ ကၽြန္ေတာ္တို႔ တစ္ခ်ိဳ႕ တစ္ေလ အတြက္ေတာ႔ အခုထိ လက္လႊတ္လို႔ မရေသးပါဘူး။ အခု ေဆာင္းပါးမွာေတာ႔ VB 6.0 ကိုသံုးၿပီး Serial Port ကို ေဒတာေတြ ဘယ္လို ေရးရမယ္ ဆိုတာကို ရွင္းလင္း တင္ျပသြားမွာ ျဖစ္ပါတယ္။
ဒါေပမယ္႔ ဒီေဆာင္းပါးကို ဖတ္ဖို႔ VB 6.0 နဲ႔ ပက္သက္တဲ႔ အေျခခံ အခ်ိဳ႕ကို သိထားၿပီး ျဖစ္ဖို႔ေတာ႔လိုပါတယ္။ ကၽြန္ေတာ္ ေရးတဲ႔ ေဆာင္းပါး အေတာ္မ်ားမ်ားဟာ အေျခခံ ရွိၿပီးသား စာဖတ္ ပရိသတ္ အတြက္ ရည္ရြယ္ထားတာ ျဖစ္တဲ႔ အတြက္ ေလ႔လာကာစ စာဖတ္ ပရိသတ္ အတြက္ ဖတ္ရတာ အခက္အခဲ ရွိတယ္ ဆိုရင္ ေတာင္းပန္ပါတယ္။
PC တစ္လံုးရဲ႕ Serial data ေတြကို Serial Port (Com1-Com4) ကေန ပို႔ေဆာင္တဲ႕ ေနရာမွာ ASCII data ေတြကို အသံုးခ် ရပါတယ္။ အဲဒီလို လုပ္ေဆာင္ဖို႔ VB 5.0 နဲ႔ 6.0 မွာ MsComm ဆိုတဲ႔ control ကို အသံုးျပဳရမွာ ျဖစ္ပါတယ္။ အဲဒီ control ဟာ custom control ျဖစ္တဲ႔ အတြက္ default control အေနနဲ႔ ပါလာမွာ မဟုတ္ပါဘူး။ ဒါေၾကာင္႔ menu ထဲက Project - Components ဆိုၿပီး ေပၚလာတဲ႔ dialog box ထဲက Microsoft comm control 6.0 ဆိုတာေလးကို ပံုမွာ ျပထားတဲ႔ အတိုင္း ေရြးခ်ယ္ေပးရပါမယ္။
ေနာက္ တစ္ဆင္႔ အေနျဖင္႔ MS Comm control (တယ္လီဖုန္းပံု) ကို ေအာက္ပံုတြင္ ေဖၚျပထားသည္႔ အတိုင္း Toolbox မွ form ေပၚသို႔ ဆြဲယူ ေရးသား ရမည္ ျဖစ္သည္။
Serial Port ကို programming အသံုးျပဳ၍ interfacing ျပဳလုပ္ရာတြင္ နည္းလမ္း ၂ ခုကို အသံုးျပဳႏိုင္သည္။
1. Interrupt communication
Interrupt communication ျပဳလုပ္ရာတြင္ Interrupt process မွ အဆိုပါ devices မ်ားမွ မိမိ ကြန္ပ်ဴတာ ၏ comm port ဆီသို႔ signal ပို႔မပို႔ကို ေစာင္႔ၾကည္႔ ေနရမည္ ျဖစ္သည္။ ပရိုဂရမ္မာ တစ္ေယာက္အေနျဖင္႔ ComEvent ႏွင္႔ OnCommEvent ႏွစ္ခုကို အသံုးျပဳရမည္ ျဖစ္သည္။ အကယ္၍ အဆိုပါ events မ်ား active ျဖစ္လာပါက devices မ်ားမွ signal မ်ား ေပးပို႔ေၾကာင္း သိရွိႏိုင္မည္ ျဖစ္သည္။
2. Polling Communication
PC system တစ္ခုတြင္ polling ဆိုသည္မွာ CPU ႏွင္႔ terminal တစ္ခုၾကား ေဒတာ ပို႔ေဆာင္ျခင္း ျဖစ္သည္။ ဥပမာ ကီးဘုတ္မွ ကီး တစ္ခုကို ႏွိပ္ထားမထား ေစာင္႔ၾကည္႔သည္႔ ပံုစံမ်ိဳးျဖစ္သည္။ သို႔ေသာ္ အဆိုပါ device တစ္ခုတည္းကိုသာ အခ်ိန္ျပည္႔ ေစာင္႔ၾကည္႔ေနပါက infinite looping ကဲ႔သို႔ အေျခအေနမ်ိဳး ျဖစ္ကာ အျခား devices မ်ား အလုပ္ ဆက္မလုပ္ႏိုင္ေတာ႔ဘဲ ကြန္ပ်ဴတာ ဟန္း သြားမည္ ျဖစ္သည္။ ထိုအေျခအေနမ်ိဳးကို "Web Poll" ဟုေခၚၿပီး Loss time 90% ရွိတတ္သည္။ အဆိုပါ cycle time lose ကို ေရွာင္ရွားရန္ VB Programming တြင္ Roung Robin ဟု ေခၚေသာ Timer control ကို အသံုးျပဳ၍ Serial Port ကို အလွည္႔က် ေစာင္႔ၾကည္႔ သည္႔ စနစ္ ကို အသံုးခ်ႏိုင္သည္။
MSComm control တြင္ interrupt ကို အသံုးျပဳႏိုင္ေသာ event မွာ Oncomm Event ျဖစ္သည္။ ပံုမွန္ Serial port communication အတြက္ အသံုးျပဳေလ႔ရွိေသာ comm event မွာ comEvReceive ႏွင္႔ comEvSend တို႔ ျဖစ္သည္။ Modem ကို အသံုးျပဳ၍ ဆက္သြယ္မႈ အေျမာက္အမ်ား အတြက္ signals မ်ားကို ေစာင္႔ၾကည္႔ရန္ အတြက္မူ MSDN ကိုသာ ရွာေဖြရန္ ရည္ညႊန္းလိုပါသည္။
MSComm Element (Serial Port အတြက္ setting မ်ား ျပဳလုပ္ျခင္း)
• ComPort သည္ RS-232 port interfacing အတြက္ Com1, Com2 စသျဖင္႔ ေရြးခ်ယ္ေပးရန္ ျဖစ္သည္။
• Setting မွာ Baud,Parity,Data(number of bits),Stop ပံုစံျဖည္႔ရန္ ျဖစ္သည္။ ဥပမာ။ "1200,n,8,1 "
• HandShaking တြင္ ကၽြန္ေတာ္တို႔ အေနျဖင္႔ အမ်ိဳးအစား ၄ မ်ိဳးကို ေအာက္ပါအတိုင္း သတ္မွတ္ ေပးႏိုင္ပါသည္
• comNone
• comXonXoff
• comRTS
• comTRSXonXoff
အခ်က္အလက္မ်ား ေပးပို႔ရာတြင္ Buffer ကို အသံုးျပဳပံု
-InBuffersize ကို လက္ခံရရွိလာေသာ အခ်က္အလက္မ်ား အတြက္ buffer အရြယ္အစားကို သတ္မွတ္ရန္ အသံုးျပဳသည္။
- OutBuffersize ကို ေပးပို႔မည္႔ အခ်က္အလက္မ်ား အတြက္ buffer အရြယ္အစားကို သတ္မွတ္ရန္ အသံုးျပဳသည္။
- Rthreshold ကို အခ်က္အလက္မ်ား ေပးပို႔ရာတြင္ Event-driven ျဖစ္ေစရန္ သတ္မွတ္သည္။
- Sthreshold ကို အခ်က္အလက္မ်ား ရယူရာတြင္ Event-driven ျဖစ္ေစရန္ သတ္မွတ္သည္။
- Inputlen သည္ buffer အတြင္း လက္ခံရယူႏိုင္ေသာ အခ်က္အလက္ အေရအတြက္ ကို သတ္မွတ္ေပးသည္။
- EOFEnable ဆိုသည္မွာ ဖိုင္ အဆံုးကို သတ္မွတ္ထားေသာ သေကၤတ ျဖစ္သည္။
About Hardware
- ParityReplace mean is character value instead of occur Parity Error
- NullDiscard mean is define in receive or not "NULL CHARACTER"
- RTSEnable mean is define signal RTS (Request To Send)
- DTSEnablemean is define signal DTR(Data Terminal Ready)
Port မ်ားကို ဆက္သြယ္ရန္အတြက္ MSComm ၏ properties မ်ားကို ေရြးခ်ယ္ သတ္မွတ္ျခင္း
1. CommPort Property ကို coding မိမိ ေရးသားရာတြင္ အသံုးျပဳလိုသည္႔ comm port ကို ေရြးခ်ယ္ႏိုင္ရန္ အတြက္ အသံုးျပဳႏိုင္သည္။ ဥပမာ။ Com1 ကို အသံုးျပဳမည္ဆိုပါက MSComm1.CommPort=1 ဟူ၍ေရးသားႏိုင္သည္။
2. Settings Property ကို coding ေရးသားရာတြင္ အခ်က္အလက္မ်ား ေပးပို႔/လက္ခံ မည္႔ သတ္မွတ္ခ်က္မ်ား ျဖစ္ေသာ Baud(rate for receive/send data),Parity(N),Number of bits,bits Stop စသည္တို႔ကို သတ္မွတ္ႏိုင္ရန္ အသံုးျပဳထားျခင္း ျဖစ္ပါသည္။ အသံုးျပဳပံုမွာ ေအာက္ပါ အတိုင္း ျဖစ္ပါသည္ -
MSComm1.Settings="Baud(rate for receive/send data),Parity(N),Number of bits,bits Stop"
ဥပမာ။ MSComm1.Settings="1200,N,8,1"
3. InputLen Property ကို input buffer size သတ္မွတ္ရန္ အတြက္ အသံုးျပဳသည္။
Exemple MSComm1.InputLen=1
4. Property PortOpen ကို port အား ဖြင္႔ျခင္း ပိတ္ျခင္း ျပဳလုပ္ရန္ အသံုးျပဳသည္။ Open =True ,Close =False
ဥပမာ။ MSComm1.PortOpen=True
5. Rthreshold Property သည္ buffer တြင္ အခ်က္အလက္မ်ား လက္ခံရရွိလာသည္႔ အခါတြင္ Event-driven activation ကို ျဖစ္ေပၚေစသည္။ OnComm Event procedure အတြင္းရွိ CommEvent ကို active ျဖစ္ေစသည္။
Example MSComm1.Rthreshold =1
MSComm properties မ်ားကို port selection ႏွင္႔ port enabling functions အစရွိေသာ communication parameters မ်ားအား သတ္မွတ္ေပးရန္ အသံုးျပဳႏိုင္သည္။ အဆိုပါ setting မ်ားကို ေအာက္တြင္ ေဖၚျပထားသကဲ႔သို႔ Form_load() procedure တြင္ ေရးသားျခင္း သို႔မဟုတ္ new Sub တစ္ခု ဖန္တီး၍ ေနာင္မွ ေခၚယူ အသံုးခ် ျခင္းမ်ား ျပဳလုပ္ႏိုင္သည္။
Private Sub Form_Load()
MSComm1.Settings="1200,N,8,1"
MSComm1.CommPort=1
MSComm1.InputLen=1
MSComm1.PortOpen=True
MSComm1.Rthreshold =1
End Sub
Serial port ကို သံုးျပဳ၍ ဆက္သြယ္ျခင္း
အထက္တြင္ ေရးသားျပခဲ႔ေသာ coding အရ Comm port ကို အသံုးျပဳ RS-232 ႏွင္႔ ဆက္သြယ္ရန္ အတြက္ လိုအပ္ေသာ အခ်က္အလက္မ်ား သတ္မွတ္ေပးထားၿပီး ျဖစ္ရာ ေဒတာ ေပးပို႔ျခင္း၊ ရယူျခင္းမ်ားကို Output ႏွင္႔ Input properties မ်ား အသံုးျပဳ၍ လုပ္ေဆာင္ ႏိုင္ပါသည္။
Output = အခ်က္အလက္မ်ားကို Serial port သို႔ ေပးပို႔ရန္ အသံုးျပဳသည္။
Input == အခ်က္အလက္မ်ားကို Serial port မွ ရယူရန္ အသံုးျပဳသည္။ but this will being command to write at Event Property OnComm that has in Sub MSComm_OnComm that read data from serial port or RS-232
ဥပမာ
keyboard မွ ရိုက္သြင္းလိုက္ေသာ အခ်က္အလက္မ်ားကို serial port သို႔ ေပးပို႔ရန္ အတြက္ TextBox Control ၏ KeyPress event ကို ေအာက္ေဖၚျပပါ အတိုင္း အသံုးျပဳႏိုင္သည္။
Sub txtRXTX_KeyPress(KeyAscii As Integer)
MSComm1.Output=Chr$(KeyAscii)
End Sub
ေပးပို႔ေသာ အခ်က္အလက္မ်ား ကို လက္ခံရယူရန္ အတြက္မူ OnComm event ကို ေအာက္ပါ နမူနာ အတိုင္း အသံုးျပဳ ႏိုင္သည္။
Private Sub MSComm1_OnComm()
Dim StrData As Variant 'define variable type as it is variant
Str=MSComm1.Input
Text1.Text=StrData
End Sub
ကၽြန္ေတာ္ ပထမဆံုး Input property ကို အသံုးျပဳစဥ္က direct data မ်ား ရယူရာတြင္ အဆင္မေျပ ျဖစ္ခဲ႔ရသည္။ ထို႔ေၾကာင္႔ filter function အေနႏွင္႔ ေအာက္တြင္ ေရးသား ေဖၚျပထားေသာ DataShow function ကို အသံုးျပဳခဲ႔ရသည္။
DataShow function
Public Static Sub DataShow(TextShow As Control, Data As String)
Const SpeedBaud = 16000
Dim LngSize As Long, X
LngSize = Len(TextShow.Text)
If TermSize > SpeedBaud Then
TextShow.Text = Mid$(TextShow.Text, 4097)
LngSize = Len(TextShow.Text)
End If
TextShow.SelStart = SpeedBaud
Do
X = InStr(Data, Chr$(8))
If X Then
If X = 1 Then
TextShow.SelStart = SpeedBaud - 1
TextShow.SelLength = 1
Data = Mid$(Data, X + 1)
Else
Data = Left$(Data, X - 2) & Mid$(Data, X + 1)
End If
End If
Loop While X
Do
X = InStr(Data, Chr$(10))
If X Then
Data = Left$(Data, X - 1) & Mid$(Data, X + 1)
End If
Loop While X
X = 1
Do
X = InStr(X, Data, Chr$(13))
If X Then
Data = Left$(Data, X) & Chr$(10) & Mid$(Data, X + 1)
X = X + 1
End If
Loop While X
TextShow.SelText = Data
TextShow.SelStart = Len(TextShow.Text)
End Sub

Call function DataShow :
Call DataShow Text1,(StrConv((StrData),vbUnicode))

Using Even in OnComm() procedure
ေအာက္ပါ နမူနာ ပရိုဂရမ္တြင္ Select case condition ကို အသံုးျပဳ၍ ေရးသား ထားပါသည္။
Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case comEvReceive
Dim Buffer As Variant
Buffer = MSComm1.Input
ShowData txtRXTX, (StrConv((Buffer), vbUnicode))
Case comEvSend : 'here put your condition that you want
Case comEvCTS
Case comEvDSR
Case comEvCD
Case comEvRing
Case comEvEOF
Case comBreak
Case comCDTO
Case comCTSTO
Case comDCB
Case comDSRTO
Case comFrame
Case comOverrun
Case comRxOver
Case comRxParity
Case comTxFull
End Select
End Sub
ကၽြန္ေတာ္႔ အေနနဲ႔ Microcontroller ကို Serial port ကေနတစ္ဆင္႔ Ascii command ေတြ လွမ္းပို႔ၿပီး stepper motor တစ္လံုးကို ဘယ္လိုမ်ိဳး ထိန္းခ်ဳပ္လို႔ ရလဲ ဆိုတာကို ေအာက္မွာ နမူနာ ေရးျပထား ပါတယ္။
A99 ' accelerate setting - အရွိန္ျမႇင္႔ဖို႔
V3 ' speed setting - အရွိန္ႏႈန္း
D5000 ' step setting -
H- 'direction setting - ဦးတည္ရာ ထိန္းခ်ဳပ္ရန္
G ' go ,it is start motor command - ေမာ္တာ စတင္ရန္
ေအာက္က နမူနာ ပရိုဂရမ္ေလးမွာ button တစ္ခု ထည္႔ထားၿပီး click လုပ္တဲ႕ အခ်ိန္မွာ အလုပ္စလုပ္မွာ ျဖစ္ပါတယ္။
Private Sub Command1_Click()
MSComm1.Settings="1200,N,8,1"
MSComm1.CommPort=1
MSComm1.InputLen=1
MSComm1.PortOpen=True
MSComm1.Rthreshold =1
If MSComm1.PortOpen Then
MSComm1.Output ="A99 V3 D5000 H- G " ' character lastest will be press space bar 1 time before put symbol "
End If
End Sub
ေအာက္ပါ ပရိုဂရမ္ကေတာ႔ MODEM ကို အသံုးျပဳၿပီး Serial port ကေန အဆက္အသြယ္ျပဳလုပ္တဲ႔ နည္းလမ္း နမူနာပဲ ျဖစ္ပါတယ္။
Private Sub Form_Load()
Dim strValue As String ' define Buffer value from Modem
MSComm1.CommPort = 1 ' select Com1
MSComm1.Settings = "9600,n,8,1" ' setting parameter in communicate with com port
MSComm1.InputLen = 0 'define size of Input buffer (comming with Modem)
MSComm1.PortOpen = True ' command open port
MSComm1.Output = "ATV1Q0" & Chr&(13) 'send AT command to Modem
Do
DoEvents
strValue = strValue & MSComm1.Input ' get input data of Com Port
Loop Until InStr(strValue, "OK" & vbCrLf)
MSComm1.PortOpen = False 'Close port
End Sub
မွတ္ခ်က္မ်ား
1. PORT ENABLING
Port ေရြးခ်ယ္ျခင္း ႏွင္႔ enable ျပဳလုပ္ျခင္းမ်ားကို form load ႏွင္႔ unload subroutines မ်ားတြင္ coding ေရးသား သင္႔သည္။ သို႔မဟုတ္ radio buttons ႏွင္႔ pull down menus မ်ားကို အသံုးခ်၍ runtime တြင္ ေရြးခ်ယ္ႏိုင္ရန္ စီမံထားသင္႔သည္။
2.ေဒတာမ်ား ရယူျခင္း
serial port မွ ေဒတာမ်ား ရယူရာတြင္ serial buffer ထဲမွာ လက္ခံရရွိတဲ႔ စာလံုးအေရအတြက္ မွန္ကန္တဲ႔ အထိ ေစာင္႔ဖို႔ အေရးႀကီးပါတယ္။ မွန္ကန္တဲ႔ စာလံုး အေရအတြက္ ရရွိလာရင္ carriage return (တစ္ေၾကာင္း ဆင္းဖို႔) တစ္လံုး နဲ႔ line feed အတြက္ တစ္လံုး စုစုေပါင္း ၂ လံုး ထပ္ေပါင္းထည္႔ၿပီး ေစာင္႔ၾကည္႔ရမွာ ျဖစ္ပါတယ္။
3.ေဒတာမ်ား ေပးပို႔ျခင္း
အေျခအေန အေတာ္မ်ားမ်ားမွာ Serial port ကေန ေဒတာ ေပးပို႔ရာမွာ Command တစ္ခုနဲ႔ တန္ဖိုး တစ္ခုကို တြဲၿပီး ပို႔ရမယ္႔ အေျခအေနမ်ိဳး ႀကံဳရေလ႔ ရွိပါတယ္။ ဥပမာ။ 'GO' ဆိုတဲ႔ ညႊန္ၾကားခ်က္နဲ႔ '1500' ဆိုတဲ႔ position value တစ္ခုကို တြဲလ်က္ ေပးခ်င္တယ္ဆိုရင္ ေအာက္ပါအတိုင္း ေပးပို႔လို႔ ရပါတယ္။
MSComm1.Output = " GO 1500" + Chr(13)
(အဲဒီမွာ Chr(13) ဆိုတာ carriage return (တစ္ေၾကာင္းဆင္းတဲ႔ သေကၤတ) ျဖစ္ပါတယ္။)
စာဖတ္သူမ်ား အေနနဲ႔ Microcontroller ေတြကို Serial port သံုးၿပီး ဘယ္လို ဆက္သြယ္ရလဲဆိုတာကို သိခ်င္ေနမယ္ ထင္ပါတယ္။ တကယ္ေတာ႔ အထက္က ေဖၚျပထားၿပီးသား နည္းလမ္းေတြကိုပဲ သံုးၿပီး ဆက္သြယ္ရတာပဲ ျဖစ္ပါတယ္။ ဒါေပမယ္႔ ကိုယ္ ဆက္သြယ္မယ္႔ Microcontroller ေတြ အသံုးျပဳထားတဲ႔ protocol ေတြကိုေတာ႔ ေသေသခ်ာခ်ာ သိထားရမွာ ျဖစ္ပါတယ္။
.....ဆက္ရန္
ဆက္လက္ဖတ္ရွဳရန္
ျပန္ပိတ္ရန္

Haious Ezy Uploader

ကၽြန္ေတာ္႔ အေနနဲ႔ စာဖတ္သူမ်ားကို upload တင္ဖို႔ Haious Ezy Uploader ဆိုတဲ႔ ဆိုဒ္ေလး တစ္ခုကို လက္တို႔ ခ်င္ပါတယ္။ ျမန္မာလူမ်ိဳး ကြန္ပ်ဴတာ ပညာရွင္ တစ္ေယာက္ လႊင္႔တင္ ထားတာ ျဖစ္ၿပီး ဘာ အက်ိဳး အျမတ္ကို မွ် မယူဘဲ အသံုးျပဳသူေတြ အခမဲ႔ နဲ႔ အဆင္အေျပဆံုး ျဖစ္ေအာင္ ႀကိဳးစားထားတာကို ေတြ႔ရပါတယ္။ အဲဒီဆိုဒ္ေလးမွာ အႀကီးဆံုး upload အရြယ္အစား အေနနဲ႔ 100 MB အထိ တင္ပို႔ ႏိုင္ၿပီး ဖိုင္ အမ်ိဳးအစား ေတြ အေနနဲ႔ GIF, JPEG, JPG, PNG, PDF, DOC, ZIP, EXE အစရွိတဲ႔ ဖိုင္မ်ိဳးစံုကို တင္ပို႔ ခြင္႔ ျပဳထားတာကို ေတြ႔ရပါတယ္။ ဒါ႔အျပင္ အဲဒီ တင္ပို႔ ထားတဲ႔ ဖိုင္ေလးေတြကိုလဲ ဘယ္ေတာ႔မွ မဖ်က္ဘဲ ထားေပးမယ္လို႔ အာမခံထားပါေသးတယ္။ ဒါေၾကာင္႔ User ေတြ အေနနဲ႔ မိမိတို႔ ဖိုင္ေလးေတြကို အျမဲတမ္း သိမ္းဆည္း ထားႏိုင္သလို ေစာင္႔ဆိုင္းစရာမလိုဘဲ အခ်ိန္မေရြး ဆြဲယူ အသံုးခ် ႏိုင္မွာ ျဖစ္ပါတယ္။ ဖိုင္ အေရအတြက္ အကန္႔ အသတ္မရွိ သိမ္းဆည္း ထားႏိုင္သလို twitter, digg, delicious နဲ႔ facebook ေတြမွာ direct link လုပ္ခြင္႔ ေပးထားတာမို႔ စမ္းသပ္ သံုးစြဲ ၾကည္႔ပါ လို႔ တိုက္တြန္းလိုက္ ပါရေစ။
အကိုးအကား
http://ezy.haious.org/v2/about.php
ဆက္လက္ဖတ္ရွဳရန္
ျပန္ပိတ္ရန္

ဘေလာက္လိပ္စာ ေျပာင္းလဲျခင္း
ကၽြန္ေတာ္႔ ဘေလာက္ေလးကို ဂူဂယ္က ဝယ္ထားျပီး Google App နဲ႔ ညိေနလို႔ ျပႆနာကို ေျဖရွင္းေနရတဲ႔ အခ်ိန္ အတြင္းမွာ http://blog.engineer4myanmar.com ကို မလႊဲမေရွာင္သာ အိမ္ေျပာင္း ေနခဲ႔ရပါတယ္။ အိမ္ငွားဘ၀မွာ ဆင္းရဲစြာေနခဲ႔ျပီးမွ အခု မူလလက္ေဟာင္း လိပ္စာ ေလး ျဖစ္တဲ႔ http://www.engineer4myanmar.com ကို ေအာက္ပါ ဆက္တင္းမ်ား အကူအညီနဲ႔ ျပန္လည္ ရရွိသြားျပီ ျဖစ္ပါတယ္။ ဒါေၾကာင္႔ လာေရာက္ ဖတ္ရႈၾကတဲ႔ မိတ္ေဆြမ်ားကို အရင္လိပ္စာျဖစ္တဲ႔ http://www.engineer4myanmar.com ကိုပဲ ေျပာင္းလဲ ဖတ္ရႈၾကဖို႔ အားနာနာနဲ႔ ပဲ ေမတၱာရပ္ခံပါရေစ ခင္ဗ်ာ။

ကၽြန္ေတာ္႔ ဘေလာက္ေလးကို လင္႔ခ္မ်ား ခ်ိတ္ထားခဲ႔မယ္ဆိုရင္အား အားလပ္တဲ႔ အခ်ိန္က်ရင္ လိပ္စာေျပာင္းလဲ ရည္ညႊန္းေပးပါလို႔ အႏူးအညႊတ္ ေတာင္းပန္ပါတယ္ခင္ဗ်ာ။
ဘေလာက္ဂါ အတြက္ DNS setting မ်ား
DNS setting ထဲမွာ
engineer4myanmar.com. 3600 IN A 64.202.189.170
www.engineer4myanmar.com. 3600 IN CNAME ghs.google.com.
ဒီလိုေလးပဲ ရွိေနဦးမယ္ဆိုရင္ အဆင္မေျပျဖစ္တတ္ပါတယ္။
ေအာက္ပါအတိုင္း ထပ္မံ ျပင္ဆင္ေပးလိုက္ပါ။
engineer4myanmar.com. 3600 IN A 64.233.179.121
engineer4myanmar.com. 3600 IN A 66.249.81.121
engineer4myanmar.com. 3600 IN A 72.14.207.121
www.engineer4myanmar.com. 3600 IN CNAME ghs.google.com.

မွတ္ခ်က္
ပံုမွန္အားျဖင္႔ DNS setting ထဲမွာ www.engineer4myanmar.com ကို ghs.google.com နဲ႔ assign လုပ္ေပးျပီး TTL 3600 ထားေပးလိုက္ရင္ အိုေကေပမယ္႔ ဒိုမိန္းနိမ္းကို ဂူဂယ္က ဝယ္ထားျပီး Google App နဲ႔ အခန္႔မသင္႔လို႔ ညိသြားရင္ ျပႆနာ အၾကီးအက်ယ္ တက္တတ္ပါတယ္။ အဲလိုျဖစ္လာရင္ Google blogger အတြက္ေပးထားတဲ႔ server ေတြရဲ႕ IP address 3 ခုကို A records 3 ခု လုပ္ျပီး အထက္ပါ ဥပမာအတိုင္း assign လုပ္ေပးျခင္းနဲ႔ ေျဖရွင္းႏိုင္ပါတယ္။
ဒါေပမယ္႔ http://engineer4myanmar.com ကိုပါ http://www.engineer4myanmar.com ကို redirect လုပ္ေပးဖို႔ လိုအပ္ပါတယ္။ ဒါမွသာ လိပ္စာ ၂ ခုလံုးနဲ႔ ဝင္လို႔ ရမွာ ျဖစ္ပါတယ္။ အဲဒါကို ကၽြန္ေတာ္ကေတာ႔ URL Redirection လုပ္ျခင္းျဖင္႔ ေျဖရွင္းပါတယ္။ အထူးသတိထားရမွာက အဲဒီအဆင္႔ကို DNS setting လုပ္ျပီးမွ သြားလုပ္မိရင္ DNS setting ေတြ ပ်က္သြားတတ္တာပါပဲ။ အဲဒါေလးကို ျပန္စစ္ျပီး ပ်က္သြားရင္ ျပန္လုပ္လိုက္ပါ။
အကိုးအကားမ်ား
http://blogging.nitecruzr.net/2008/06/custom-domain-publishing-and-google.html
Chuck [Blog*Star 2006 - 2008]
Real Blogger Status: http://blogging.nitecruzr.net/
ဆက္လက္ဖတ္ရွဳရန္
ျပန္ပိတ္ရန္

Happy birthday Google!
ဒီေန႔မွာ ဂူဂယ္ တစ္ေယာက္ ဆယ္ႏွစ္ျပည္႔ပါျပီ။ ဂူဂယ္ ေပၚေပါက္လာတဲ႔ သမိုင္းတစ္ေလွ်ာက္မွာ မွတ္သား စရာေလးေတြ ရွိတဲ႔ အတြက္ အခ်ိဳ႕ကို ေလ႔လာျပီး တင္ျပခ်င္ပါတယ္။ တကယ္ေတာ႔ ဂူဂယ္ ဆိုတာဟာ ၁၉၉၆ ဇန္နဝါရီလမွာ လာရီေပ႔ခ်္ (Larry Page) နဲ႔ ဆာေဂ်း ဘရင္း (Sergey Brin) ဆိုတဲ႔ စတန္းဖို႔ဒ္ တကၠသိုလ္က ပီအိပ္ခ်္ဒီ ေက်ာင္းသားေလး ၂ ေယာက္ တင္သြင္းခဲ႔တဲ႔ Search engine အေၾကာင္း ေရးသားထားတဲ႔ စာတမ္းေလး တစ္ေစာင္ ကေနျပီး စတင္ေပါက္ဖြားလာတာပဲ ျဖစ္ပါတယ္။ (ျမန္မာ ေက်ာင္းသားမ်ားလဲ ကိုယ္လုပ္တဲ႔ စာတမ္းေလးေတြကို လက္ေတြ႕ အသံုးက်ေအာင္ အတတ္ႏိုင္ဆံုး ႀကိဳးစား ျပဳစုႏိုင္ၾကပါေစ၊ ဂူဂယ္ လိုမ်ိဳး ေအာင္ျမင္တဲ႔ Product ေတြ ထုတ္ႏိုင္ပါေစလို႔ ဆုေတာင္းမိပါတယ္။)
အစကေတာ႔ သူတို႔ရဲ႕ search engine ကို BackRub လို႔ အမည္ေပးခဲ႔ပါတယ္။ ဘာလို႔လဲ ဆိုေတာ႔ ဆိုဒ္တစ္ခုရဲ႕ အေရးပါမႈကို သူ႔ကို ရည္ညႊန္းထားတဲ႔ backlinks ေတြေပၚမူတည္ျပီး ခန္႔မွန္း သတ္မွတ္ ဖို႔ ဒီဇိုင္းထုတ္ထားလို႔ပဲ ျဖစ္ပါတယ္။ ဒါေပမယ္႔ အဲဒီ မတိုင္မီကတည္းက ဒီ နည္းစံနစ္ကို သံုးထားတဲ႔ Rankdex ဆိုတဲ႔ search engine တစ္ခု ရွိေနႏွင္႔ ျပီးသားပါ။
သူတို႔ ႏွစ္ေယာက္ဟာ သီးစစ္လုပ္ၾကရင္း နဲ႔ အခု ဂူဂယ္ ျဖစ္လာမယ္႔ search engine အတြက္ အေျခခံ အုတ္ျမစ္ေတြကို ခိုင္ေအာင္ ခ်ႏိုင္ခဲ႔ၾကပါတယ္။ အစပိုင္းမွာ သူတို႔ search engine ရဲ႕ လိပ္စာဟာ စတန္းဖို႔ဒ္ ယူနီဗာစီတီရဲ႕ subdomain တစ္ခုျဖစ္တဲ႔ google.stanford.edu အေနနဲ႔ စတင္ခဲ႔တာပါ။ google.com ဒိုမိန္း ကို ၁၉၉၇ စက္တင္ဘာလ ၁၅ ရက္ေန႔ မွာမွ မွတ္ပံုတင္ခဲ႔တာ ျဖစ္ပါတယ္။ ၁၉၉၈ စက္တင္ဘာလ ၄ ရက္ မွာ Google Inc. ကို သူငယ္ခ်င္းတစ္ေယာက္ရဲ႕ ကားဂိုေထာင္ထဲမွာ စတင္ခဲ႔တာ ျဖစ္ပါတယ္။ အဲဒီလုိ စတင္ႏိုင္ဖို႔ လိုအပ္တဲ႔ ေငြ အရင္းအႏွီးကို Sun Microsystems ကို စတင္တည္ေထာင္ခဲ႔သူ Andy Bechtolsheim က ေဒၚလာ ၁၀၀၀၀၀ တန္ ခ်က္လက္မွတ္တစ္ခု စတင္ ထုတ္ေပးရာမွ အျခားရင္းႏွီးျမဳပ္ႏွံသူမ်ား ပါဝင္လာျပီး စုစုေပါင္း ေဒၚလာ ၁.၁ သန္းအထိ တိုးတက္မ်ားျပားလာခဲ႔ျခင္း ျဖစ္ပါတယ္။
၁၉၉၉ မတ္လ ေရာက္တဲ႔ အခါက်မွ ဆီလီကြန္ ေတာင္ၾကားမွာ ရွိတဲ႔ Palo Alto မွာ ကုမၸဏီကို ေျပာင္းေရႊ႕ျပီး က်က်နန အေျခခ် ႏိုင္ခဲ႔တာပဲ ျဖစ္ပါတယ္။ ေနာက္ပိုင္းမွာ အဲဒီ အေဆာက္အဦးေတြကို Googleplex လို႔ လူသိမ်ားလာခဲ႔ပါတယ္။
ဂူဂယ္ဟာ သူ႔ရဲ႕ ရိုးစင္းတဲ႔ ဒီဇိုင္းနဲ႔ လြယ္ကူစြာ အသံုးခ်ႏိုင္မႈတို႔ေၾကာင္႔ အသံုးခ်သူ အမ်ားစုက ႏွစ္သက္ခဲ႔ၾကပါတယ္။ ၂၀၀၀ခုႏွစ္ က စတင္ျပီး ဂူဂယ္မွာ search keywords ေတြကို အေျခခံတဲ႕ ေၾကာ္ျငာမ်ား စတင္ ထည္႔သြင္းလာပါတယ္။ (ဂူဂယ္ဘယ္က ပိုက္ပိုက္ေတြရသလဲဆိုတာ သိျပီေနာ္ :P)။
ဂူဂယ္ ဆိုတဲ႔ နာမည္ ျဖစ္လာပံုက ေတာ႔ googol (အဓိပၸါယ္က 10pow(100)) ဆိုတဲ႔ စာလံုးကို google လို႔ မွားေပါင္းရာက စလာခဲ႔တာျဖစ္ျပီး Merriam Webster Collegiate Dictionary နဲ႔ Oxford English Dictionary ေတြမွာ google ရဲ႕ အဓိပၸါယ္ကို “အင္တာနက္မွ အခ်က္အလက္မ်ားရယူရန္ ဂူဂယ္ search engine ကို အသံုးျပဳျခင္း” လို႔၂၀၀၆ မွ စတင္ျပီး ထည္႔သြင္း ေပးခဲ႔ပါတယ္။
ဂူဂယ္ရဲ႕ အဓိက ဆားဗစ္က Google web search engine ျဖစ္ေပမယ္႔ သူ႔မွာ အျခား ထင္ရွား လူၾကိဳက္မ်ားတဲ႔ ဆားဗစ္ေတြ အေတာ္မ်ားမ်ား ရွိပါေသးတယ္။ စာဖတ္သူ အားလံုး သိထားျပီးသားလဲ ျဖစ္လိမ္႔မယ္လို႔ ယံုၾကည္တဲ႔အတြက္ လက္အေညာင္းခံျပီး မေရးေတာ႔ပါဘူးေနာ္ :P။ အခုေလာေလာဆယ္ ကၽြန္ေတာ္႔အေနနဲ႔ကေတာ႔ ဂူဂယ္ကို သံုးျပီး သီးစစ္ရဲ႕ အစိတ္အပိုင္း အခ်ိဳ႕ကို ျပဳစုခဲ႔တာ ျဖစ္သလို သူ႔ကို အသံုးျပဳျပီး ဘေလာက္ဂါက တစ္ဆင္႔ နည္းပညာ တစ္ခ်ိဳ႕ကို ေဝမွ်ေပးႏိုင္ခဲ႔တဲ႔ အတြက္ ေက်းဇူးဆပ္တဲ႔ အေနနဲ႔ အခုလို ေဆာင္းပါးေလးနဲ႔ ဂူဂယ္ရဲ႕ ဆယ္ႏွစ္ေျမာက္ေမြးေန႔ေလးကို ႀကိဳဆို ဂုဏ္ျပဳလုိက္တာ ျဖစ္ပါတယ္ခင္ဗ်ား။
အကိုးအကားမ်ား
http://en.wikipedia.org/wiki/Google
ဆက္လက္ဖတ္ရွဳရန္
ျပန္ပိတ္ရန္
Google Chrome for Windows
Google က browser အသစ္ ထုတ္လိုက္ပါတယ္။ Google Chrome လို႔ေခၚျပီး ဒီေန႔ပဲ ဝင္းဒိုး သမားေတြ အတြက္ ထုတ္ေပးလိုက္ပါျပီ။ ဒီေနရာမွာ ေဒါင္းလုပ္ရယူႏိုင္ပါတယ္။ မၾကာမီ ပန္းသီးနဲ႔ လင္းနစ္ သမားေတြ အတြက္လဲ ထုတ္ေပးမယ္လို႕ ဆိုပါတယ္။ Google က ကာတြန္းေလးေတြနဲ႔ သူ႔ ဘေရာက္ဇာကို ေၾကာျ္ငာ ထားေပမယ္႔ ကၽြန္ေတာ္ကေတာ႔ ဘေလာက္ဂါ တစ္ေယာက္အေနနဲ႔ ဖိုင္းယားေဖာက္စ္ ေလာက္ မၾကိဳက္ပါဘူး။ စာေရးဖို႕ ျပင္ဆင္တဲ႕ ေနရာမွာ တစ္ခုခု လိုေနသလိုပါပဲ။ ေစာင္႔ေတာ႔ ၾကည္႔ရဦးမွာပါ။ ေလာေလာဆယ္ ျမန္မာဖြန္႔ေတြနဲ႔ သိပ္ အဆင္မေျပ ေသးဘူးလို႔ ထင္ပါတယ္။ ျမန္မာဖြန္႔(ေဇာ္ဂ်ီ)ကို ဖိုင္းယားေဖာက္စ္ ေလာက္ ကိုင္တြယ္တာ မေကာင္းပါဘူး။

မွတ္ဥာဏ္ပိုင္း နဲ႕ process ေတြကို ခြဲျပီး လုပ္ေပးတာ (Multiprocessing)၊ Task Manager (Shift + Esc) ကေတာ႔ အေတာ္ေလး ကို အသံုးဝင္ လာမယ္ ထင္ပါတယ္။ ဆိုဒ္ေတြကို analysis လုပ္ျပီး ေလ႔လာခြင္႔ ရလာႏိုင္ပါတယ္။ သိပ္ေလးတဲ႕ ဆိုဒ္ေတြကို သိသာလာမွာ ျဖစ္ပါတယ္။ အသြင္အျပင္ ဒီဇိုင္းပိုင္းကေတာ႔ ေျပာစရာမရွိေအာင္ ေကာင္းပါတယ္။ ဒိုင္းနမစ္ feature ေတြကို ေတာ႔ ေတာ္ေတာ္ေလး ၾကိဳက္ပါတယ္။ ဂ်ာဗား အင္ဂ်င္ ထည္႔ေပးထားတာလည္း သေဘာက်မိပါတယ္။ speed လဲ အနည္းငယ္ ျမန္လာသလို ခံစားရပါတယ္။ လံုျခံဳစိတ္ခ်မႈ အတြက္လည္း အေတာ္ေလးကို လုပ္ေပးထားတာ ေတြ႔ရပါတယ္။ ကၽြန္ေတာ္ အႀကိဳက္ဆံုး ကေတာ႔ open source ျဖစ္ေနတဲ႕ အခ်က္ပါပဲ။ စိတ္ဝင္စားသူမ်ား Chromium porject page ကို သြားေလ႔လာႏိုင္ပါတယ္။ သတင္းစာ ရွင္းလင္းပြဲမွာ ေျပာထားတာေလး ေတြ သိခ်င္ရင္ ေတာ႔ ဒီမွာ ဖတ္ပါ။
ျမန္မာလိုကေတာ႔ ဆက္တင္း နဲနဲ လုပ္ရပါတယ္။ ပံုထဲကအတိုင္း သြားၿပီး ဖြန္႔ေတြကို Zawgyi-One ေရြးလိုက္တာပါပဲ။


အဲလိုလုပ္တာေတာင္ ခုလို ေလးေထာင္႔တံုးေလးေတြကို ေအာက္မွာ ေတြ႔ေနရတုန္းပါပဲ။

စာဖတ္သူတို႕ ေတြ႕ရွိခ်က္ေလးေတြကိုလည္း ကြန္မန္႔မွာ ေရးထားေပးခဲ႔ေစခ်င္ပါတယ္။ သုေတသန လုပ္ၾကရေအာင္ေလ။ :P ဆက္လက္ဖတ္ရွဳရန္
ျပန္ပိတ္ရန္
@ TCP/IP အေၾကာင္းေလး ေျပာမယ္္ဗ်ာ
(၁) IP address ဆိုတာ ဘာလဲ ?

TCP/IP = Transmission Control Protocol and Internet Protocol ျဖစ္ပါတယ္ ။
IP တစ္ခု ဟာ 32 bit binary number ျဖစ္ၿပီး decimal ဂဏန္း 4 လံုးနဲ ့ေဖာ္ျပေလ ့ရွိပါတယ္ ။
decimal ဂဏန္း 1 လံုးစီဟာ 8 bits 0 to 255 (octets) ကုိကုိယ္စားျပဳပါတယ္ ။အဲလုိ ေဖာ္ျပတာကို “dotted decimal” လုိ ့ေခၚပါတယ္ ။
Example; 140.179.220.200 (Dotted decimal)
10001100.10110011.11011100.11001000 (Binary)

(၂) အမ်ိဳးအစား ဘယ္ႏွခု ရွိပါသလဲ ?

Classes အမ်ိဳးအစားကုိ အခုလို ခြဲထားပါတယ္ ။

Class Range of Address
A 1 to 126(127) binary 0xxx နဲ ့စ ပါတယ္။
B 128 to 191 binary 10xx နဲ ့စ ပါတယ္။
C 192 to 223 binary 110x နဲ ့စ ပါတယ္။
----------------------------------------------------------------------------
D 224 to 239 binary 1110 နဲ ့စ ပါတယ္။
E 240 to 254 binary 1111 နဲ ့စ ပါတယ္။
----------------------------------------------------------------------------
က်န္ေနတဲ့ 127(localhost) ကို local loopback အတြက္သံုးပါတယ္ ။သင္ 127.0.0.1 ကို ping ၿပီးစမ္းသပ္ႏိုင္ပါတယ္ ။
Class D addresses ကို multicasting အတြက္ သံုးပါတယ္။ Class E addresses ကုိေတာ့ future use ဆုိၿပီးသတ္မွတ္ထားပါတယ္ ။အဲဒါေၾကာင့္
သင့္ရဲ ့ IP address ကိုရိုက္တဲ့ အခါ 1 to 223 ကေနပဲ စရုိက္လို ့ရပါတယ္ ။ 224 ကေနစၿပီး ေနာက္ပုိင္းကုိ ရုိက္လုိ ့မရပါဘူး ။ အလြယ္တကူ စမ္းသပ္ ၾကည့္ႏုိင္ပါတယ္ ။

Private Network Address ၄ ခုရွိပါတယ္ ။

( Local loopback Address )- 127.0.0.1

( Class A )- 10.0.0.0
( Class B )- 172.16.0.0
( Class C )- 192.168.0.0

Class ေတြကို ပံုမွန္အားျဖင့္ ဘယ္လုိဆံုးျဖတ္သလဲ ဆိုတာ ေလ့လာၾကရေအာင္- (N) က network ကိုကိုယ္စားျပဳၿပီး (n) က node ကုိကိုယ္စားျပဳပါတယ္ ။
- Class A -- NNNNNNNN.nnnnnnnn.nnnnnnn.nnnnnnn
- Class B -- NNNNNNNN.NNNNNNNN.nnnnnnnn.nnnnnnnn
- Class C -- NNNNNNNN.NNNNNNNN.NNNNNNNN.nnnnnnnn
အဲဒါေၾကာင့္
Class A ကိုသံုးမယ္ဆိုရင္ network (N)ေပါင္း 2^8 = 255 ကိုသံုးႏုိင္မွာျဖစ္ၿပီး အဲဒီ network ရဲ ့ေအာက္မွာ ကြန္ပ်ဴတာေပါင္း (n)
255 x 255 x 255 =16581373 လံုးကိုတပ္ဆင္အသံုးျပဳႏုိင္မွာ ျဖစ္ပါတယ္ ။
Class B ကိုသံုးမယ္ဆိုရင္ network (N)ေပါင္း 255 x 255 =65025 ကိုသံုးႏုိင္မွာျဖစ္ၿပီး အဲဒီ network ရဲ ့ေအာက္မွာ ကြန္ပ်ဴတာေပါင္း (n)
255 x 255 = 65025 လံုးကိုတပ္ဆင္အသံုးျပဳႏုိင္မွာ ျဖစ္ပါတယ္ ။
Class C ကိုသံုးမယ္ဆိုရင္ network (N)ေပါင္း 255 x 255 x 255 =16581373 ကိုသံုးႏုိင္မွာျဖစ္ၿပီး အဲဒီ network ရဲ ့ေအာက္မွာ ကြန္ပ်ဴတာေပါင္း (n)255 လံုးကိုတပ္ဆင္အသံုးျပဳႏုိင္မွာ ျဖစ္ပါတယ္ ။

(IP address မွာ 192.168. ေတြပဲ ဘာလုိ ့ျဖစ္ေနရတာလဲ လို ့မၾကာခဏ အေမးခံရပါတယ္။ကုိယ္သံုးမယ္ ့ ကြန္ပ်ဴတာ အေရအတြက္(node)ဟာ ၂၅၅ လံုးကုိ မေက်ာ္ဘူး ဆိုရင္ Class C ကိုပဲ သံုးၾကလို့ပါ။)
ေနာက္တစ္ခုကေတာ့ node မွာ decimal no: 0 နဲ ့ 255 ကိုထည့္လုိ ့မရပါဘူး။(ဥပမာ- 192.168.1.0* / 192.168.1.255* )
IP address မွာ node portion all Ones (11111111)=255 က Broadcast Address ျဖစ္ပါတယ္ ။
IP address မွာ node portion all Zeros(00000000)=0 က Network Address ျဖစ္ပါတယ္ ။

ကဲ ......ဒီကေန ့ေတာ့ ဒီမွ်ပါပဲကြယ္ ။စာဖတ္သူအေပါင္း IP address နဲ ့ပတ္သက္လို ့ အသိေတြ တိုးပြားႏိုင္ၾကပါေစ ။

Sunday, June 29, 2008
@ group policy မွ drives: မ်ားကို ပိတ္ျခင္း၊ ေဖ်ာက္ျခင္း
group policy ဟာ registry editor လုိပဲ function ေတြအမ်ားႀကီးပါ ပါတယ္ ။ group policy ကနားလည္ ရတာပိုလြယ္ပါတယ္ ။group policy ကေန Drives: ေတြကုိ ၀င္လို ့မရေအာင္ ပိတ္ထားတာ ၊ ေဖ်ာက္ခ်င္တဲ့ Drives: ေတြကို ေဖ်ာက္ထားတဲ့ အေၾကာင္းေလး ေျပာျပပါမယ္။ပထမဦးဆံုး Run မွာ gpedit.msc လုိ ့ ရုိက္ ထည့္လုိက္ပါ။ဒါဆိုရင္ Group Policy Dialog Box က်လာပါလိမ့္မယ္။ဘယ္ဘက္ Box ရဲ ့ Local Computer Policy မွာ Computer Configuration နဲ ့User Configuration ဆိုၿပီး ႏွစ္ခု ရွိပါတယ္ ။User Configuration > Administrative Templates > Windows Components > Windows Explorer ကိုသြားပါ ။ေအာက္ပါပံုကို ၾကည့္ပါ။





ပထမဆံုး Prevent access to drives from my Computer ကုိႏွိပ္လိုက္ပါ။ Setting Tab မွာ Enable ေပးလိုက္ ပါ ။Restrict all drives ကုိ Default ေရြးထားပါတယ္ ။ အဲဒါကုိ ေရြးမယ္ဆိုရင္ ကုိယ့္မွာ ရွိသမွ် Drives ေတြအကုန္လံုးကုိ သံုးလို ့ရမွာ မဟုတ္ေတာ့ပါဘူး ။ အဲဒီအျပင္ C: ထဲမွာ Window OS ရွိတဲ့ အတြက္ My Documents ၊ Shared Documents နဲ ့ Desktop ေပၚက folder ေတြကိုလည္း ဖြင့္လို ့ရမွာ မဟုတ္ေတာ့ပါ ဘူး။ My Network Places , Recycly Bin နဲ ့ software ေတြကိုေတာ့ သံုးလုိ ့ရပါတယ္ ။ အဲဒါေၾကာင့္ ကုိယ္အေနနဲ ့ လိုအပ္မယ္ထင္တဲ့ Drives တစ္ခု ၊ ႏွစ္ခု ကိုပဲ ပိတ္ထားတာက ေကာင္းပါတယ္ ။ ကၽြန္ေတာ္က Drives D: ကိုပိတ္ထားလုိက္ပါမယ္ ။ ေအာက္က ပံုကုိ ၾကည့္ပါ ( Explain ဆုိတဲ့ Tab မွာလည္း အေသးစိတ္ ရွင္းျပထားပါတယ္ )။ OK ေပးလုိက္ပါၿပီ ။ My Computer ထဲကို သြားၿပီး Drives D: ကိုဖြင့္ၾကည့္ပါ ။ ဖြင့္လုိ ့မရေတာ့ပါဘူး ။Address Bar ကေနဖြင့္ရင္လည္း မရပါဘူး ။



အဲဒီလိုပါပဲ ။ Hide these specified drives in My Computer ကို Setting Tab မွာ Eable ေပးလိုက္ပါ။ Restrict all drives ကုိ Default ေရြးထားပါတယ္ ။ အဲဒါကုိ ေရြးမယ္ဆိုရင္ ကုိယ့္မွာ ရွိသမွ် Drives ေတြအကုန္လံုး မျမင္ရေတာ့ ပါဘူး ။ Hide လို ့ေျပာတဲ့ အတြက္ file ေတြကို Hidden လုပ္ထားတာနဲ ့ အလား သ႑န္တူပါတယ္ ။ Address Bar ကေန C: လုိ ့ရုိက္ထည့္ရင္ Drives C: ထဲကိုေရာက္သြားပါတယ္ ။ D: လို ့ ရုိက္ထည့္ရင္လည္း Drives D: ထဲကုိေရာက္သြားပါတယ္ ။ က်န္တာေတြကိုလည္း လိုက္ကလိခ်င္တယ္ဆိုရင္ ကလိၾကည့္ပါ ။စိတ္၀င္စားစရာ အမ်ားႀကီးရွိပါတယ္ ။ ကၽြန္ေတာ့္ရဲ ့ ဒီပုိစ့္ကို စိတ္၀င္စားလို ့ လုိက္လုပ္ၾကည့္သူ အေပါင္း ေအာင္ျမင္ပါေစဗ်ာ ။

spoolsv.exe using 99% of cpu - the solution
printer ရွိတဲ႔ သူ ေတာ္ေတာ္ မ်ားမ်ားမွာ ျဖစ္ေလ႔ရွိတဲ႔ ျပႆနာ တစ္ခု က တစ္ခါတစ္ေလ မွာ စက္က အလိုလိုေနရင္း သံုးရတာ ေလးလံလာလို႔ Task manager မွာ ၾကည္႔လိုက္တဲ႔ အခါ spoolsv.exe က CPU ရဲ႕ % အေတာ္မ်ားမ်ား တစ္ခါတစ္ေလ 99% ေလာက္ နီးပါးကို သံုးေနၾကတာကို ေတြ႔ရတတ္ပါတယ္။ အေတာ္မ်ားမ်ားက အဲလို ျဖစ္လာရင္ spoolsv.exe ကို ျဖဳတ္ခ်ပစ္လိုက္တတ္ပါတယ္။ အဲလို ျဖဳတ္ခ်လိုက္ရင္ အဲဒီ ခဏေတာ႔ ေကာင္းသြားတာေပါ႔ေလ။ ေနာက္တစ္ခု windows တက္လာရင္ ျပန္ဒုကၡေပးပါေလေရာ။ ဒီေတာ႔ တစ္ခ်ိဳ႕က အဲဒီ service ေလးကို disable ေပးထားလိုက္တတ္ပါတယ္။ ဒီေတာ႔ အဲလို ျပႆနာ မျဖစ္ေတာ႔ေပမယ္႔ printer ကိုျပန္သံုးခ်င္တိုင္း အဲဒီ service ကို ျပန္ Automatic setting ေျပာင္း start ျပန္လုပ္နဲ႔ အဆင္မေျပပါဘူး။ တကယ္႔ ျပႆနာ အစစ္က တစ္ျခားေနရာမွာပါ။ တကယ္ေတာ႔ အဲလိုျဖစ္ရာတာဟာ မ်ားေသာအားျဖင္႔ bad spooler files ေတြေၾကာင္႔ ျဖစ္ရတာပါ။ အမ်ားဆံုးက လိုကယ္ နက္၀က္ ခ်ိတ္ထားရင္ တျခားကြန္ျပဴတာေတြက လာတဲ႔ ဖိုင္ေတြေၾကာင္႔ ျဖစ္ပါတယ္။ (တျခားလူေတြက ကိုယ္႔ကို စိတ္ညစ္ေအာင္လုပ္ခ်င္လည္း အဲဒီ trick ေလး သံုးခ်င္သံုးနိုင္ပါတယ္။ :P) မလိုအပ္ရင္ printer ကို ရွယ္ရာ မေပးထားပါနဲ႔။ အဲဒီ bad spooler files ေတြ ဟာ C:\WINDOWS\system32\spool\PRINTERS ဆိုတဲ႔ Folder ထဲမွာ ရွိပါတယ္။ 0020.SHD, 0020.SPL စတဲ႔ ဖိုင္မ်ိဳးေတြ ျဖစ္ပါတယ္။ အဲဒါေလးေတြကို ရွင္းထုတ္လိုက္ရင္ အိုေကသြားမွာပါ။
ျပႆနာေျဖရွင္းနည္း

1.



Print spooler service ကို kill လုပ္ပါ။
2.


Printer share မ်ား ရွိေနပါက ျဖဳတ္ပစ္ပါ။
3.


C:\WINDOWS\system32\spool\PRINTERS ဆိုတဲ႔ Folder ကိုသြားပါ။ (ျမန္ေအာင္ run ထဲကို အဲဒီ လင္႔ရိုက္ထည္႔၊ ကူးထည္႔ျပီး သြားလုိ႕ ရပါတယ္။)။ ရွိေနတဲ႔ ဖိုင္ေတြ delete လုပ္ပါ။
4.


Print spooler service ကို start ျပန္လုပ္ပါ။

အဆင္ေျပသြားပါလိမ္႔မယ္။

ကဲ တလက္စတည္း ၾကံဳတုန္း short cut တစ္ခ်ိဳ႕ ကို ေျပာျပပါမယ္။ service တစ္ခုကို ျဖဳတ္ခ်ခ်င္တယ္ဆိုရင္ ပံုမွန္က task manager မွာ အဲဒီ process ကို right click လုပ္ျပီး End process လုပ္လိုက္ရင္ရပါတယ္။ ဒါေပမယ္႔ အဲဒါကို script ေရးခ်င္တဲ႔ သူမ်ားအတြက္ နည္းလမ္းေလးတစ္ခ်ိဳ႕ ေျပာျပပါမယ္။ command prompt ကေန services ေတြကို start, stop လုပ္လို႔ ရပါတယ္။ command က net start နဲ႔ net stop ျဖစ္ပါတယ္။ အသံုးျပဳပံုက net start "service name" နဲ႕ net stop "service name" ျဖစ္ပါတယ္။ ဒီေနရာမွာ service name ဆိုတာက ကုိယ္ kill လုပ္ခ်င္တဲ႔ service name ျဖစ္ပါတယ္။ ခု ကၽြန္ေတာ္တို႔ kill လုပ္ခ်င္ေနတဲ႔ service က print spooler ျဖစ္ပါတယ္။ မွတ္ခ်က္- spoolsv.exe မဟုတ္ပါဘူး။ မၾကာခဏ မွားတတ္ပါတယ္။ ေအာက္က ပံုမ်ားမွာ လက္ေတြ႕ အသံုးျပဳပံုကို ျမင္နိုင္ပါတယ္။





မိမိ kill လုပ္ခ်င္ေနတဲ႔ service name ကိုသိဖို႔ လိုအပ္ပါတယ္။ မသိေသးရင္ ပထမဆံုး administrative tools ထဲက services ကိုသြားပါ။ျမန္ျမန္ ေရာက္ခ်င္တယ္ ဆိုရင္ေတာ႔ ကားစီးသြား အဲေလ မွားလို႕ Run command ကေနသြားပါ။ services.msc ဆိုရင္ ေပၚလာပါလိမ္႔မယ္။အဲဒီမွာ ကိုယ္ kill လုပ္ခ်င္တဲ႔ services နာမည္ေတြကို မွတ္ထားလိုက္ပါ။
command ေတြကို သံုးတဲ႔အခါ kill လုပ္မယ္႔ service name ကို " " လုပ္ဖို႔ မေမ႔ပါနဲ႔။ အထက္က solution ကို bat file ေလးလုပ္ထားရင္ ကလစ္ တစ္ခ်က္နဲ႕ လက္မေညာင္းပဲ ေျဖရွင္းလို႔ ရပါျပီ။
ဘယ္လိုလုပ္ရမလဲဆိုေတာ႔

1.



notepad ကို ဖြင္႔ပါ
2.


ေအာက္ပါ စာသားမ်ားကို ရိုက္ထည္႔ပါ။

*



net stop "print spooler"
*


del C:\WINDOWS\system32\spool\PRINTERS\*.* /q
*


net start "print spooler"

1.



(/q ကို ဒုတိယလိုင္းမွာ သံုးထားတာက delete all လုပ္ထားလို႔ confirmation ေတာင္းလာရင္ Y/N ေပးမေနရေအာင္ တစ္ခါတည္း တိတ္တိတ္ေနဖို႕ ေျပာထားတာပါ။)ေအာက္ပါပံုအတုိင္း bat file extension (.bat) ျဖင္႔ file ကို save လုပ္ပါ။ ဒီဥပမာမွာေတာ႔ solv-spoolv.bat လို႕ နာမည္ ေပးထားပါတယ္။ Save as type ေနရာမွာ All file ကိုေရြးဖို႔ မေမ႔ပါနဲ႕။
ဒါဆို ေအာက္မွာ ျပထားတဲ႕ ပံုထဲကလိုမ်ိဳး bat ဖိုင္ေလး တစ္ခု ရလာပါမယ္။ ၄င္း ကို double click လုပ္ျပီး run လို႔ ရပါျပီ။ edit လုပ္ခ်င္ရင္ေတာ႔ right click လုပ္ျပီး Edit ကိုေရြးလို႔ ျပင္ဆင္နုိင္ပါတယ္ခင္ဗ်ာ။



*





http://www.computing.net/answers/windows-xp/spoolsvexe-big-problem-100-cpu/131323.html
*


http://torque.oncloud8.com/archives/000384.html
*


http://windowsitpro.com/article/articleid/15157/how-can-i-stop-and-start-services-from-the-command-line.html
*


http://technet.microsoft.com/en-us/library/bb490890.aspx

how to self-study commands
မွတ္ခ်က္။ beginner မ်ားအတြက္သာ ရည္ရြယ္ထားပါတယ္။
တစ္ခါတစ္ေလမွာ နီးရက္နဲ႔ ေ၀းေနၾကတဲ႔ သူတစ္ခ်ိဳ႕အတြက္ ကိုယ္႔ဘာသာကိုယ္ေလး လဲ ေလ႔လာျဖစ္ေအာင္ တင္ေပးလိုက္တာပါ။ တကယ္က အာေမခ်ာတစ္ေယာက္အေနနဲ႕ hand book တစ္ခုလို ေရးဖို႕ ေတာ္ေတာ္ အခ်ိန္ယူရပါတယ္။ ဒီၾကားထဲ အေရးတၾကီးသိခ်င္ရင္ အီးဘြတ္ခ္ ေတြ ၀က္ဘ္ဆိုဒ္ေတြ ၀င္စရာမလိုဘဲ ကိုယ္႔ဘာသာ ရွာတတ္ေအာင္ ေနရာျပေပးခ်င္ပါတယ္။ သိျပီးသားဆိုရင္ေတာ႔ ေက်ာ္ဖတ္ေပးသြားပါခင္ဗ်ာ။



တကယ္က ဘယ္ေဆာ႔ဖ္၀ဲ ၊ ဘယ္စံနစ္မဆို documentation ေကာင္းေကာင္းလုပ္ေပးရပါတယ္။ ဒါမွလဲ သံုးစြဲသူေတြ အဆင္ေျပမွာ ျဖစ္ပါတယ္။ မ်ားေသာအားျဖင္႔ help system ထဲမွာ normal user တစ္ေယာက္အေနနဲ႕ အလြယ္တကူ ေလ႕လာအသံုးျပဳလို႕ရေအာင္ စီစဥ္ေပးထားေလ႔ ရွိပါတယ္။



Windows XP မွာလဲ user ေတြေလ႔လာဖို႔ Help and Support Center ရွိပါတယ္။ ထိေရာက္ေအာင္ အသံုးခ်ေစခ်င္ပါတယ္ဗ်ာ။ သူ႔ရဲ႕အားသာခ်က္က အီးဘြတ္ခ္မ်ားလို ရွင္းျပရံုသာမက လိုအပ္တဲ႔ tools ေတြဆီကို တိုက္ရိုက္လင္႔ခ္ လုပ္ေပးထားလို႔ အေတာ္ေလးကို အဆင္ေျပပါတယ္။



နမူနာအေနနဲ႔ လူေမးမ်ားေနတဲ႔ commands ေတြကို ရွင္းျပထားတဲ႔ ေနရာေလးကို ဘယ္လိုသြားရတယ္ဆိုတာ ျပထားပါတယ္။ ကၽြန္ေတာ္ေမ႔ရင္ အဲဒီကုိ သြားၾကည္႔ေနၾကေပါ႔ဗ်ာ။ အထင္ေတာ႔ မေသးပါနဲ႔ help ဆိုလုိ႔။ ေနာက္ထပ္ ေမႊေနွာက္ျပီး မိမိလိုတာမ်ား ရွာသံုးၾကေစခ်င္ပါတယ္ခင္ဗ်ား။ စာဖတ္သူမ်ား ဗဟုသုတ တိုးပြားၾကပါေစခင္ဗ်ာ။




ဆက္လက္ဖတ္ရွဳရန္
ျပန္ပိတ္ရန္
Understanding and application of Windows XP command line utility in real life (၅)
4. time

date command နွင္႔ အတူတူ ပင္ျဖစ္သည္။ (၃) နည္းသံုးနိုင္သည္။

1) >time /t

2) time new_time

3) time



1) သည္ command prompt ၌ system time တစ္ခုတည္းကို သိလိုေသာအခါ အသံုးျပဳေသာ command ျဖစ္ပါသည္။ (ပံု-၁၀)

2) သည္ system time ကို ျပဳျပင္ခ်င္ေသာအခါ အသံုးျပဳေသာ command ျဖစ္ပါသည္။ အေရွ႔က time သည္ command ျဖစ္၍ အေနာက္က new_time ဆိုသည္မွာ မိမိေျပာင္းလဲခ်င္ေသာ ေန႔စြဲ အသစ္အား hh:mm:ss format အသံုးျပဳ၍ ထည္႔သြင္းေပးရန္ျဖစ္ပါသည္။ (e.g. >time 06:14:15) (ပံု-၁၁)

3) ေနာက္ဆံုး method မွာ system time ကို အရင္ၾကည္႔ရွုစစ္ေဆးျပီး ျပင္ဆင္လိုက ျပင္ဆင္နိုင္ရန္သံုးေလ႔ရွိပါသည္။ ျပင္ဆင္ရန္လိုအပ္သည္႔အခါ hh:mm:ss format ျဖင္႔ ျပင္ဆင္နိုင္သလို ျပင္ဆင္ရန္ မလိုအပ္ပါက enter နွိပ္၍ ေက်ာ္သြားနိုင္ပါသည္။ (ပုံ-၁၂၊ ပံု-၁၃)
ပံု-၁၀
ပံု-၁၁
ပံု-၁၂
ပံု-၁၃
5. exit

command line utility မွထြက္ရန္ အသံုးျပဳသည္။ ( cmd.exe အားပိတ္ရန္သံုးသည္။)



6. dir

directory (folder) နွင္္႔ subdirectory တို႔၏ စာရင္းမ်ားနွင္႔ ၄င္းတို႔ အတြင္းရွိ files list မ်ားၾကည္႔ရွဳရန္အတြက္ အသံုးျပဳသည္။ ၄င္း command အသံုးျပဳျခင္းျဖင္႔ disk တစ္ခု၏ volume label နွင္႔ serial number တို႔ကို ၾကည္႔ရွဳနိုင္သည္။ ထို႔ျပင္ files နွင္႔ directories တို႔၏ list မ်ားကို ေနာက္ဆံုး update လုပ္ထားေသာ ေန႔စြဲ နွင္႔ အခ်ိန္မ်ားအားၾကည္႔ရွဳနိုင္သည္။ ၄င္းျပင္ file and folder တို႔၏ စုစုေပါင္း အေရအတြက္ ၄င္းတို႔၏ size မ်ားနွင္႔ ၄င္း disk ၏ free space တို႔ကို ေဖၚျပေပးနိုင္သည္။

အလြယ္သံုးနည္း

>dir

>dir *.*

>dir *.txt

>dir *.exe

>dir file.txt

>dir file1.*

Note: * သည္ (all) အားလံုးဟု အဓိပါယ္ ရသည္။ file name ၏ format မွာ " Filename.Extension " ျဖစ္သည္။ ( e.g. autoexec.bat, command.com, video.mpeg, install.exe, picture1.jpg e.t.c)။ dot (.) ၏ အေရွ႔ဘက္၌ (*) ရွိလွ်င္ filename အားလံုးဟုဆိုလို၍ dot (.) ၏ အေနာက္ဘက္တြင္ * ရွိပါက extension မ်ားအားလံုး ( file type မ်ားအားလံုး) ဟုဆိုလိုပါသည္။ *.* ဟုဆိုလ်င္ all files ( file name အားလံုး၊ file type အားလံုး) ဟုဆိုလိုပါသည္။ *.txt ဆိုလ်င္ txt files မ်ားအားလံုး ( extension txt နွင္႔ဆံုးေသာ file အားလံုးဟု ဆိုလိုသည္။ *.exe ဆိုလွ်င္ exe files မ်ားအားလံုး ( extension exe နွင္႔ဆံုးေသာ file အားလံုး )ဟု ဆိုလိုသည္။ file1.* ဆိုလ်င္ file name file1 ရွိေသာ file types မ်ားအားလံုး ( e.g. file1.com, file1.exe, file1.jpg, file1.dat, file1.doc,.....)။ အကယ္၍ file name ကို အေသအခ်ာ မမွတ္မိေတာ႔ဘဲ အစသာမွတ္မိပါက file*.*, file*.exe အစရွိသျဖင္႔ ရွာနိုင္ျပီး အကယ္၍ အဆံုးသာ သိပါက *file.* ဟူ၍ အသံုးျပဳနိုင္သည္။ အကယ္၍ တစ္လံုးတည္း ေမ႔ေနပါက * အစား ? ကိုသံုးနိုင္သည္။ (e.g. file?.exe , ?file.exe .)
ပံု-၁၄
Parameters အျပည္႔အစံု (dir command အတြက္) အသံုးျပဳပံုစံ

dir [Drive:][Path][FileName] [...] [/p] [/q] [/w] [/d] [/a[[:]attributes]][/o[[:]SortOrder]] [/t[[:]TimeField]] [/s] [/b] [/l] [/n] [/x] [/c] [/4]

Parfveter တစ္ခုခ်င္းစီ၏ အသံုးျပဳပံုမ်ားအေၾကာင္းကို ရွင္းလင္းတင္ျပပါဦးမည္။

[Drive:][Path] မိမိ List လုပ္ၾကည္႔ရွဳလိုေသာ directory ၏ location တည္ေနရာကို ေဖၚျပရန္ျဖစ္သည္။ e.g. C:\Windows , D:\Video\Myanmar Video...) ၄င္း parameter ကို မထည္႔ဘဲထား၍လည္းရသည္။ ထိုသို႔ မထည္႔လ်င္ current directory (လက္ရွိ တည္ေနရာ) အတြင္းရွိ files နွင္႔ directory မ်ားကိုသာ list လုပ္ေပးမည္ျဖစ္သည္။ (ပံု-၁၅)
ပံု-၁၅
ဆက္လက္ဖတ္ရွဳရန္
ျပန္ပိတ္ရန္
Understanding and application of Windows XP command line utility in real life (၄)
2. cls

ပံု-၂ တြင္ help command ေၾကာင္႔ screen ၌ command list မ်ားျဖင္႔ျပည္႔ ေနပါသည္။ ထိုသို႔ screen တြင္ရွုပ္မေနေစရန္ cls command ကို သံုး၍ ရွင္းပစ္နုိင္ပါသည္။



3. date

Command line ကိုအသံုးျပဳ၍ systen date ကိုျပဳျပင္နိုင္ေသာ command ျဖစ္ပါသည္။ ၄င္းအား အသံုးျပဳပံု (၃)နည္း ရွိပါသည္။

1) date /t

2) date new_date

3) date



1) သည္ command prompt ၌ system date တစ္ခုတည္းကို သိလိုေသာအခါ အသံုးျပဳေသာ command ျဖစ္ပါသည္။ (ပံု-၅)

2) သည္ system date ကို ျပဳျပင္ခ်င္ေသာအခါ အသံုးျပဳေသာ command ျဖစ္ပါသည္။ အေရွ႔က date သည္ command ျဖစ္၍ အေနာက္က new_date ဆိုသည္မွာ မိမိေျပာင္းလဲခ်င္ေသာ ေန႔စြဲ အသစ္အား mm-dd-yy format အသံုးျပဳ၍ ထည္႔သြင္းေပးရန္ျဖစ္ပါသည္။ (e.g. >date 02-19-06) (ပံု-၆)

3) ေနာက္ဆံုး method မွာ system date ကို အရင္ၾကည္႔ရွုစစ္ေဆးျပီး ျပင္ဆင္လိုက ျပင္ဆင္နိုင္ရန္သံုးေလ႔ရွိပါသည္။ ျပင္ဆင္ရန္လိုအပ္သည္႔အခါ mm-dd-yy format ျဖင္႔ ျပင္ဆင္နိုင္သလို ျပင္ဆင္ရန္ မလိုအပ္ပါက enter နွိပ္၍ ေက်ာ္သြားနိုင္ပါသည္။ (ပုံ-၇၊ ပံု-၈)


ပံု-၅ date /t command
ပံု-6 date 02-24-2006
ပံု-7 date (ေျပာင္းလဲရန္လို)
ပံု-8 date (ေျပာင္းလဲရန္မလို)
Note: command မ်ားေနာက္တြင္ ထည္႔သြင္းေပးရေသာ parameter မ်ားကို switches မ်ားဟုေခၚေလ႔ရွိသည္။ အခ်ိဳ႔ command မ်ားတြင္ ၄င္း switches မ်ားကို မသံုးမေန သံုးစြဲရျပီး အခ်ိဳ႔ေသာ command မ်ားတြင္မူ အေျခအေနအရ ေရြးခ်ယ္သံုးစြဲရသည္။ အခ်ိဳ႔ေနရာမ်ားတြင္ switches မ်ားမပါဘဲ အသံုးျပဳနိုင္သည္။



Tip: အကယ္၍ command တစ္ခု၏ switches မ်ားနွင္႔ အသံုးျပဳပံုကိုေမ႔ေနပါက (သို.) သိခ်င္ပါက ေအာက္ပါအတိုင္း ေမးျမန္းနိုင္သည္။

(ပံု-၉) >command /?
ဆက္လက္ဖတ္ရွဳရန္
ျပန္ပိတ္ရန္

Understanding and application of Windows XP command line utility in real life (၃)
အသံုးမ်ားေသာ command မ်ား
Command မ်ားကို ရွင္းလင္းေရးသားရာတြင္ Dictionary approach ကဲ႔သို႔ alphabetical order ျဖင္႔ေရးသားျခင္း မျပဳဘဲ ပိုမိုေလ႔လာရ လြယ္ကူေသာ easy to learn approach ျဖင္႔ ေရးသားတင္ျပသြားပါမည္။ ပထမဦးစြာ အသံုးမ်ားေသာ command မ်ားကို ေလ႔လာရလြယ္ကူေအာင္ အသံုးျပဳေလ႔ရွိေသာ နည္းစံနစ္မ်ားအားေဖၚျပ၍ ဒုတိယပိုင္းတြင္ ပိုမို ျပည္႔စံုစြာ ရွင္းလင္းတင္ျပသြားမည္ျဖစ္ပါသည္။

လက္ေတြ႔စမ္းသပ္ရန္ အထက္တြင္ေဖၚျပခဲ႔ေသာနည္းအတိုင္း command line utility ကိုေခၚယူပါ။ (ပံု-၁) အတိုင္း ျမင္ရမည္ျဖစ္သည္။ ပံု-၁
၄င္းပံုနွင္႔ သင္႔ ကြန္ျပဴတာ ေပၚရွိ command prompt တို႔ အနည္းငယ္ ကြဲျပားနိုင္ပါသည္။ Windows version နွင္႔ user name တို႔ မ်ားေသာအားျဖင္႔ ကြဲျပားျခားနားေလ႔ရွိပါသည္။ ပံု-၁ တြင္ ေအာက္ဆံုး ၌ C:\Documents and Settings\BluePhoenix> ဟူ ၌ျမင္ရမည္ျဖစ္သည္။ ၄င္းသည္ (Current path+greater than sign ‘>’)တို႔ေပါင္းစပ္ ထားေသာ ပံုစံျဖစ္သည္။ default current path မွာ (Windows drive:\Document and Settings\UserName) ျဖစ္သည္။၄င္းကို prompt ဟူေသာ command ျဖင္႔ေျပာင္းလဲျပဳျပင္၌ရသည္။ ၄င္း command ကိုေနာက္ပိုင္းတြင္ အေသးစိတ္ ရွင္းလင္းတင္ျပပါမည္။ greater than ‘>’ sign ၏ေနာက္တြင္ command မ်ားကို ရိုက္ထည္႔ရန္ျဖစ္သည္။

Note: DOS command မ်ားသည္ case sensitive မျဖစ္ပါ။ သို႔ေသာ္ ျခြင္းခ်က္ အနည္းငယ္ေတာ႔ရွိပါသည္။ ၄င္းကို သက္ဆိုင္ရာ အခန္း၌ ရွင္းလင္းတင္ျပေပးသြားမည္ျဖစ္ပါသည္။


1. help

ပထမဦးဆံုး command line help ကိုမည္သို႔ေခၚယူရမည္ကို ရွင္းလင္းတင္ျပပါမည္။ command မ်ား အကုန္လံုးကို ကြၽန္ေတာ္တို႔ အတြက္ မွတ္မိေနရန္မွာ မလြယ္ပါ။ သို႔ေသာ္ help command က ကြၽန္ေတာ္တို႔ လိုအပ္ခ်က္ကို ျဖည္႔ဆည္းေပးပါသည္။ ‘>’ ေနာက္တြင္ help ဟု ရုိက္ျပီး enter ေခါက္ပါ။ ပံု-၂ တိုင္းေပၚလာပါလိမ္႔မည္။ ၄င္းတြင္ စုစုေပါင္း command ၇၁ ခု ပါ၀င္ပါသည္။ သို႔ေသာ္ ၄င္း command မ်ားသည္ အျပည္႔ အစံု မဟုတ္ေသးပါ။ ftp command မ်ား အစရွိေသာ networking နွင္႔အျခား command မ်ားကို Window XP ၏ Help and Support Center ရွိ command line reference A to Z တြင္ ေလ႔လာနိုင္ပါသည္။ သို႔ရာတြင္ ဤ စာေစာင္တြင္လည္း တတ္နိုင္သမွ် အျပည္႔စံုဆံုး ရွင္းလင္းတင္ျပသြားမည္ျဖစ္ပါသည္။
ပံု-၂
ဆက္လက္ဖတ္ရွဳရန္
ျပန္ပိတ္ရန္


Understanding and application of Windows XP command line utility in real life (၁)
ဒီ ေဆာင္းပါးကို ပလန္းနက္ မွာ က်က္စားစဥ္က ပံုမွန္ေရးျဖစ္ခဲ႔ပါတယ္။ ေနာက္ပိုင္း ပ်င္းတာနဲ႔ သိမ္းမထားမိဘူး။ ေနာက္ ပလန္းနက္ ဆာဗာ ေၾကာင္ေတာ႔ ကုန္ပါေလေရာလား။ အဲဒီထဲက စျပီး ကြန္ျပဴတာအေၾကာင္းမေရးေတာ႔တာ နွစ္ နွစ္ေလာက္ရွိပါျပီ။ ခု စီေဘာက္စ္ မွာ တစ္ေယာက္က ေတာင္းဆိုလာတာ ကို သတိရလို႔ ရွိသေလာက္ ျပန္တင္ေပးလိုက္ရေၾကာင္းပါဗ်ာ။

မိတ္ဆက္
အစပထမတြင္ကြၽန္ေတာ႔အေနျဖင္႔ command line utility အေၾကာင္းေရးရန္ မ၀ံ႔မရဲျဖစ္ေနမိသည္။ လြန္စြာရိုးရွင္းလြယ္ကူေသာ Microsoft ၏ Windows operating system က user မ်ားကို command မ်ားအစား visual interface မ်ားျဖင္႔ ခိုင္းေစ အသံုးျပဳခြင္႔ေပးထားၾကျခင္းေၾကာင္႔ျဖစ္သည္။ အမ်ားစုကလည္း command မ်ားျဖင္႔အသံုးျပဳရျခင္းကို ေခတ္ေနာက္က်ေနခဲ႔ေသာ နည္းပညာတစ္ခုဟု ထင္ျမင္တတ္ၾကသည္။ အခ်ိဳ႔ကလည္း hacker မ်ားအသံုးျပဳရန္သက္သက္ျဖစ္သည္ဟု နားလည္ထားၾကသည္။ beginner မ်ားအေနျဖင္႔မူ မိမိတို႔၏ ေနာက္ဆံုးေပၚ Windows system တြင္ command line utility ပါရွိသည္ကိုပင္ မသိၾကေပ။ မၾကာမီက အေမရိကေရာက္ ျမန္မာတစ္ေယာက္မွ email ျဖင္႔ command မ်ားကို မည္သို႔ေလ႔လာရမည္ ကို အေမးရွိဖူးသည္။ ထို႔ျပင္ computer အထူးျပဳျဖင္႔ သင္ၾကားေနၾကေသာ beginner student မ်ားက ေမးျမန္းၾကသည္ကိုလဲ မၾကာခဏ ၾကံဳေတြ႔ေနရသည္။ ထို႔ေၾကာင္႔ ကြၽန္ေတာ္၏ စိတ္ထဲတြင္ ၄င္းအေၾကာင္းမ်ားကို အျပည္႔အစံု မဟုတ္သည္႔တိုင္ တစ္စိတ္ တစ္ပိုင္းအျဖစ္ တင္ျပလိုေသာ ေစတနာျဖင္႔ မိမိနားလည္သမွ် လက္ေတြ႔ဘ၀တြင္ အသံုးမ်ားေသာ command မ်ားႏွင္႔အသံုးျပဳပံုမ်ားကို ေရးသားတင္ျပလိုက္ရျခင္းျဖစ္ပါသည္။

သမိုင္းေၾကာင္း
Windows XP command line utility အေၾကာင္းမေျပာမီ ၄င္း၏ ျဖစ္ေပၚလာပံု သမိုင္းေၾကာင္း အက်ဥ္းခ်ဳပ္ကို အနည္းငယ္ေျပာျပလိုပါသည္။ command line utility ၏ အစမွာ မ်ားစြာ စိတ္၀င္စားစရာေကာင္းလွပါသည္။ ၁၉၈၀ ျပည္႔နွစ္မ်ားတ၀ိုက္တြင္ IBM company က မည္သူမဆို လြယ္ကူစြာ ၀ယ္ယူအသံုးျပဳနိုင္ရန္ တစ္ကိုယ္ေရသံုး ကြန္ျပဴတာ (PC) မ်ားထုတ္လုပ္ရန္စီစဥ္ခဲ႔သည္။ သို႔ေသာ္ ၄င္းကြန္ျပဴတာမ်ားကို ေမာင္းႏွင္ခိုင္းေစရန္ operating system(OS) အဆင္သင္႔မရွိေသးေပ။ ထိုအခ်ိန္က ထြက္ရွိသမွ် အေကာင္းဆံုး OS မွာ ဂယ္ရီေကဒယ္ (Gary Kildall) ၏ CP/M (Control program for Microcomputers)) ျဖစ္သည္။ Gary သည္ computer နယ္ပယ္တြင္ PhD ရရွိထားျပီး သူ၏ OS မ်ားမွာ ထိုစဥ္က အေအာင္ျမင္ဆံုးလည္းျဖစ္ခဲ႔သည္။ ထို႔ေၾကာင္႔ IBM က ပထမဆံုး Gary ကို ဆက္သြယ္ခဲ႔သည္။ သို႔ရာတြင္ Gary က IBM ႏွင္႔စာခ်ဳပ္ ခ်ူပ္ဆိုရန္ ျငင္းပယ္လိုက္ရာမွ Bill Gates ႏွင္႔ဆက္သြယ္ကာ Microsoft company ႏွင္႔စာခ်ဳပ္ခ်ဳပ္ခဲ႔သည္။ ထိုစာခ်ဳပ္အရ Microsoft က Gary ၏ CP/M OS ကို တိုက္ခိုက္ေခ်ဖ်က္ရန္ ပိုမိုေကာင္းမြန္ေသာ OS တစ္ခု ေရးေပးရန္ျဖစ္သည္။ ဤသို႔ျဖင္႔ Microsoft ၏ ပထမဦးဆံုး OS ျဖစ္ေသာ Microsoft Disk Operating System ေပၚထြက္လာခဲ႔ျခင္းျဖစ္ပါသည္။
တကယ္ေတာ႔ MS DOS သည္ Seattle Computer Products မွ programmer Tim Paterson ေရးသားထားေသာ QDOS (Quick and dirty operating system) ကိုအေျခခံထားျခင္းျဖစ္သည္။ QDOS သည္လည္း Gary ၏ CP/M ကိုပင္ မွီး၍ ေရးသားထားျခင္းျဖစ္သည္။ Paterson က CP/M ၏ manual ကို၀ယ္ယူခဲ႔ျပီး ေျခာက္ပတ္အတြင္း QDOS ကိုအျပီးေရးသားခဲ႔ျခင္းျဖစ္သည္။ သို႔ေသာ္ QDOS သည္ CP/M ႏွင္႔ တရား၀င္ ကြဲျပားျခားနားလ်က္ရွိသည္။ Microsoft က ၄င္း QDOS ကို ေဒၚလာ 50000 ႏွင္႔ Microsoft company မွ၀ယ္ယူကာ အနည္းငယ္ျပဳျပင္၍ MS DOS ဟု အမည္ေျပာင္းေပးကာ IBM ႏွင္႔ အျခား တစ္ကိုယ္ေရသံုး ကြန္ျပဴတာမ်ား ထုတ္လုပ္ေရာင္းခ်ေသာ company မ်ားအား လိုင္စင္ယူ ၍ ေရာင္းခ်ခဲ႔ရာမွ DOS (Disk operating system) ကို တြင္က်ယ္စြာ စတင္အသံုးျပဳလာၾကျခင္းျဖစ္သည္။ ေနာက္ပိုင္းတြင္ Paterson သည္ Seattle Computer Products မွအလုပ္ထြက္၍ Microsoft ႏွင္႔ပူးေပါင္းခဲ႔သည္။ ထိုစဥ္က Paterson ေျပာခဲ႔ေသာ စကားတစ္ခြန္းမွာ သမိုင္းတြင္ခဲ႔သည္။ သူက (Life begins with a disk drive) ( ဘ၀ ဟာ disk drive တစ္ခု မွအစျပဳသည္ ) ဟုေျပာခဲ႔ျခင္းျဖစ္သည္။ ၄င္းေျပာခဲ႔သလိုပင္ DOS ေၾကာင္႔ လူမ်ား၏ လူေနမွဳဘ၀ စတင္ေျပာင္းလဲလာခဲ႔ရသည္ဟု ဆိုခ်င္က ဆိုႏိုင္ေပသည္။
သို႔ေသာ္ Apple company မွ Macintosh OS ႏွင္႔ Microsoft မွ Windows OS ကို စတင္ မိတ္ဆက္လာသည္႔အခါ လူအမ်ားက အလြယ္တကူအသံုးျပဳနိုင္သည္႔ Visual interface စံနစ္ကို တစ္ခဲနက္ အားေပးခဲ႔ၾကသည္။ ထိုအခါမွ အစျပဳ၍ DOS ၏ အေရးပါမွဳေမွးမွိန္လာခဲ႔သည္။ သို႔ရာတြင္ အစပ်ိဳး Windows OS မ်ားသည္ DOS ေအာက္တြင္ အလုပ္လုပ္ေသာ interface program တစ္ခုသာျဖစ္ခဲ႔သည္။ သို.ရာတြင္ ေနာက္ပိုင္း Windows OS မ်ားသည္ ျပည္႔စံုေသာ Visual interface OS မ်ားျဖစ္လာျပီး DOS သည္ ၄င္း Windows မ်ား၏ ေအာက္ မွ command shell တစ္ခုအျဖစ္သို႔ေျပာင္းလဲခဲ႔ရသည္။
ထိုသို႔ User အမ်ားစု၏ ေမ႔ေပ်ာက္ျခင္းကို ခံရေသာ္လည္း command မ်ားကို အသံုးျပဳ၍ ကြန္ျပဴတာအား ခိုင္းေစရာတြင္ အားသာခ်က္မ်ားစြာ ရွိေနေပေသးသည္။ ၄င္းအားသာခ်က္မ်ားကို သိရွိနားလည္ထားၾကေသာ administrator မ်ားႏွင္႔ hacker မ်ား၊ power user မ်ားက command line utility ကို ထိထိေရာက္ေရာက္ ဆက္လက္အသံုးျပဳေနၾကေပသည္။

Ref:

1. http://en.wikipedia.org/wiki/MS_DOS
2. http://www.linfo.org/ms-dos.html
3. http://www.patersontech.com/Dos/Byte/History.html

ဆက္လက္ဖတ္ရွဳရန္
ျပန္ပိတ္ရန္

Windows XP မွာ sound problem ေတြကို ဘယ္လို ေျဖရွင္းမလဲ?
ဒီေဆာင္းပါးမွာ Windows XP ရဲ့ အသံပိုင္းဆိုင္ရာ ျပႆနာေတြကို ဘယ္လိုေျဖရွင္းႏိုင္မလဲဆိုတာ တင္ျပထားပါတယ္။
ဘယ္လိုျပႆနာေတြလဲ?

* Speaker ေတြ၊ Headphone ေတြက ဘာသံမွထြက္မလာဘူး။
* Sound ဖြင့္ထားစဥ္မွာ ရုတ္တရက္ ရပ္သြားတယ္။
* အသံက ျပတ္ေတာင္းျပတ္ေတာင္း ျဖစ္ေနတယ္။
* အသံက ပံုမွန္မဟုတ္ဘဲ စူးေနတယ္ (သို႔မဟုတ္) ေအာေနတယ္။
* Sound တစ္ခုခုကို Play လိုက္ရင္ ကြန္ျပဴတာ hang သြားတယ္။
* Sound တစ္ခုခုကို Play လုိက္တိုင္း Computer က Restart ျဖစ္ျဖစ္သြားတယ္။
* Sound တစ္ခုခု Playဖို႔ ႀကိဳးစားတိုင္း ေအာက္မွာ ေဖာ္ျပထားတဲ့ ဥပမာေတြထဲက error message မ်ိဳးေတြ တက္လာတယ္။

· MIDI output error detected.
· No wave device that can play files in the current format is installed.
· The CD Audio device is in use by another application.
· WAV sound playback error detected.
· Your audio hardware cannot play files like the current file.
ဒီလိုျပႆနာမ်ိဳးေတြကို ေအာက္မွာေဖာ္ျပထားတဲ့ နည္းလမ္းေတြနဲ႔ ေျဖရွင္းၾကည့္ပါ။
နည္းလမ္း (၁) ။ Windows XP Sound Troubleshooter ကိုသံုးမယ္။
(၁) Start ကို ႏိွပ္ပါ။ Help and Support ကို ႏိွပ္ပါ။
(၂) Pick a Help Topic ေအာက္က Fixing a problem ကို ႏိွပ္ပါ။
(၃) Games, sound, and video problems ကို ႏိွပ္ပါ။
(၄) Sound Troubleshooter ကို ႏိွပ္ပါ။
(၅) PC မွာျဖစ္ေနတဲ့ Problem ကို ေဖာ္ျပထားတဲ့ Option ကို ေရြးၿပီး Next ကို ႏိွပ္ပါ။
Problem ေျပလည္သြားသည့္တိုင္ေအာင္ ညႊန္ၾကားခ်က္ေတြအတိုင္း အဆင့္ဆင့္ ေျဖရွင္းသြားပါ။ မရေသးရင္ နည္းလမ္း(၁) ကို ထပ္လုပ္ပါ။
မိမိလုပ္ခဲ့တဲ့ ေနာက္ဆံုး အဆင့္ကုိ ျပန္သြားခ်င္ရင္ Back ကို ႏိွပ္ပါ။ Sound Troubleshooter ကို ထပ္လုပ္မယ္ဆိုရင္ Start Over ကို ႏွိပ္ပါ။
နည္းလမ္း (၂) ။ Sound card driver ေတြကို Update လုပ္မယ္။
Microsoft Update ကို အသံုးျပဳၿပီး Update ျဖစ္တဲ့ Sound card driver ေတြ ရႏိုင္မလား၊ မရႏိုင္ဘူးလား စစ္ၾကည့္ပါ။ Updated driver ေတြကို ရႏိုင္/ မရႏိုင္ http://www.update.microsoft.com မွာ ၾကည့္ပါ။ Sound card Update နဲ႔ပတ္သက္ၿပီး http://support.microsoft.com/kb/812394 မွာ တဆင့္ခ်င္း ရွင္းျပထားပါတယ္။ ၀င္ဖတ္ၾကည့္ပါ။

What to Do When Windows Gets Really Messed Up
PC မွာ error information ေတြပါတဲ႔ အျပာေရာင္ Screen တတ္လာရင္ ဘယ္လိုလုပ္မလဲ?
ကြန္ျပဴတာမွာ အျဖဴေရာင္စာသားေတြပါတဲ့ Screen ျပာ ရုတ္တရက္တက္လာတာမ်ိဳး ႀကံဳဖူးတဲ့သူေတြ ရိွမွာပါ။ A problem has been detected and Windows has been shut down… စတဲ့ information မ်ိဳးေတြ ဖတ္ဖူးၾကမွာပါ။ ဒီျပႆနာကို Blue Screen of Death (BSoD) လို႔ေခၚၾကပါတယ္။ Microsoft ကေတာ့ Stop errors လို႔ ေခၚပါတယ္။

ကြန္ျပဴတာမွာ လုပ္လက္စ အလုပ္ေတြကို Save မလုပ္ရေသးခင္ ဒီလို ျပႆနာမ်ိဳး ရင္ဆိုင္လာရရင္ Dataေတြ ဆံုးရံႈးသြားတာကို ႏွေျမာတသေနရံုကလြဲလို႔ တျခားဘာမွမတတ္ႏိုင္ပါဘူး။ ကြန္ျပဴတာကို Reboot လုပ္ၾကည့္ပါဦး။ ဒီျပႆနာ ဆက္ျဖစ္ေနေသးသလား။ ေျဖရွင္းဖို႔ နည္းလမ္းေတြ ရိွပါတယ္။
ဒီ Problem ကို ေျဖရွင္းဖို႔ အသံုး၀င္မယ့္ Information ေတြ အဲဒီ Screenျပာေပၚမွာ ပါတယ္။ ကြန္ျပဴတာကို Reboot ထပ္မလုပ္ခင္ အဲဒီ Screenျပာေပၚမွာ ေပၚေနသမွ် Technical Information ေတြကို စာရြက္တစ္ရြက္ေပၚမွာ ခ်ေရးပါ။

(၁) Start ကိုႏွိပ္၊ Run မွာ devmgmt.msc ကို ရိုက္ၿပီး ၀င္ပါ။
(၂) Question mark ျပထားတဲ့ Drive ကို Double click ႏိွပ္ၿပီး၊ Driver tab ကို ႏိွပ္ပါ။ ၿပီးရင္ Roll Back Driver button ကို ႏိွပ္ပါ။
တကယ္လို႔ Drive အသစ္တစ္ခုခု ထပ္တပ္ထားရင္ အဲဒီ Drive အတြက္ Update Driver tab ကို ႏွိပ္ၿပီး Web site မွာ Update ေပးထားသလား ၾကည့္ပါ။ ေပးထားရင္ Update လုပ္လိုက္ပါ။





RAM ပ်က္စီးေနတာေၾကာင့္လည္း BSoD ျပႆနာ ျဖစ္ႏိုင္ပါတယ္။ RAM module ေတြ ပ်က္/ မပ်က္ ကို Memtest 86 နဲ႔ အလြယ္တကယ္ စစ္ေဆးလို႔ရပါတယ္။ ဒီ Program ကို Memtest.org မွာ Download လုပ္လုိ႔ရပါႏိုင္ပါတယ္။ Memtest ဟာ Windows program မဟုတ္ပါဘူး။ Windows တက္မလာခင္ကတည္းက Memtest ကို boot လုပ္ထားရပါမယ္။ ဒီ Program ကို CD image .iso file type အျဖစ္နဲ႔ Download လုပ္ၿပီး Bootable CD တစ္ခ်ပ္မွာ Burn ထားပါမယ္။ ၿပီးရင္ အဲဒီ CD ကို ထည့္ Boot လုပ္ၿပီး Memtest Program က Problem တစ္ခုခုကို ရွာေတြ႔/ မေတြ႔ စစ္ၾကည့္ပါ။
ေနာက္ထပ္ ျဖစ္ႏိုင္တာေတြကေတာ့ Windows Problem ေတြပါပဲ။ Registry ထဲမွာ အျပစ္တစ္ခုခု ရိွေနတာေၾကာင့္လည္း ျဖစ္ႏိုင္ပါတယ္။ Registry Cleaner ကို Run ၿပီး စမ္းၾကည့္ပါ။ ကၽြန္ေတာ္ကေတာ့ ToniArts' EasyCleaner ကို Free Download လုပ္ၿပီး စမ္းၾကည့္ဖို႔ အႀကံျပဳပါတယ္။


တကယ္လို႔ အခုတင္ျပခဲ့တဲ့ နည္းေတြနဲ႔ ေျဖရွင္းလို႔မွ မရရင္ေတာ့ Professional တစ္ေယာက္ေယာက္ဆီသြားျပပါလို႔ အႀကံျပဳလုိက္ပါရေစ။
USB Drive တစ္ခုခုကို ျဖဳတ္တဲ့အခါ Ejecting Problem ျဖစ္ေနရင္ ဘယ္လိုျဖဳတ္မလဲ။
ကြန္ျပဴတာအသံုးျပဳသူအားလံုး ရင္ဆိုင္ရဖူးတဲ့ ျပႆနာေတြထဲက တစ္ခုပါ။ USB Drive ကို Safely Remove Hardware Icon ေလး ႏိွပ္ၿပီး ျဖဳတ္ေပမယ့္ The Device ‘Generic Volume’ cannot be stopped right now. Try stopping the device again later. ဆိုတဲ့ Ejecting Problem message box တက္လာတတ္ပါတယ္။





အဲဒီလိုျဖစ္လာရင္ USB Drive ထဲက Program ေတြ၊ File ေတြ Floder ေတြ ဖြင့္ထားသလား Task Bar နဲ႔ System Tray မွာ စစ္ၾကည့္ပါ။ ဖြင့္ထားရင္ ဖြင့္ထားတာေတြ အားလံုးကို ျပန္ပိတ္ၿပီး USB Drive ကို ျဖဳတ္ၾကည့္ပါ။ မရေသးရင္ USB Drive နဲ႔ ဆက္ႏြယ္ခဲ႔တဲ့ Program ေတြဖြင့္ထားရင္ ပိတ္ၿပီး ျပန္ျဖဳတ္ၾကည္႔ပါ။ ျပႆနာ တက္ေနေသးရင္ ဒီျပႆနာကို ေျဖရွင္းဖို႔ နည္းလမ္းေတြ ရိွပါတယ္။

ပထမနည္းလမ္းကေတာ့ Task Manager ကိုဖြင့္ၿပီး ေျဖရွင္းပါမယ္။ Ctrl+Alt+Delete ကို ႏိွပ္ပါ။ Windows Vista မွာေတာ့ Start Task Manager ကို ႏိွပ္ပါ။ Processes Tab ကို ႏိွပ္ပါ။ Processes List ထဲမွာ USB Drive ကလို႔ထင္ရတဲ့ Process တစ္ခုခုကို ေရြးခ်ယ္ပါ။ End Process Tab ကို ႏိွပ္ပါ။ ၿပီးရင္ Safely Remove Hardware Icon ကို ႏိွပ္ၿပီး ျဖဳတ္ၾကည့္ ပါ။





အဲဒီလုပ္လို႔မွမရရင္ ခုနက Process ကို Right click ႏိွပ္ၿပီး End Process Tree ကို ႏိွပ္ပါ။ USB Drive ကို ျဖဳတ္ၾကည့္ပါ။

ဒုတိယနည္းလမ္းကေတာ့ ကြန္ျပဴတာကို Shut Down လုပ္ၿပီး USB Drive ကို Remove လုပ္တဲ႔နည္းပါပဲ။ ဒါေပမယ့္ ဒီနည္းကေတာ့ Computer ကို Reboot လုပ္ရမွာမို႔ အခ်ိန္ကုန္ပါတယ္။

တကယ္လို႔ အခု ေဖာ္ျပခဲ႔တဲ့ နည္းလမ္းေတြကို အသံုးျပဳလို႔မွ မေအာင္ျမင္ခဲ့ရင္ ေနာက္နည္းလမ္းတစ္ခုကို သံုးပါမယ္။ USB Safely Remove Program ကို Download လုပ္ၿပီး Install လုပ္ပါ။ အဲဒီ Program ဟာ System Tray ထဲက Safely Remove Hardware ေနရာမွာ Icon တစ္ခုေနနဲ႔ ေပၚေနမွာ ျဖစ္ပါတယ္။ ဒီ Program ကို သံုးၿပီး ဘယ္ Process ေတြေၾကာင့္ ဒီ ျပႆနာ ျဖစ္ရသလဲ ဆိုတာ သိႏိုင္သလို၊ ျပႆနာကို ေျဖရွင္းႏိုင္မွာ ျဖစ္ပါတယ္။ အဲဒီ Program မွာ အျခား Feature ေတြလည္း ပါရိွေသးတယ္။ USB Drive ေတြကို နာမည္ ေျပာင္းၿပီး၊ Drive တစ္ခုစီကို ရပ္ဖို႔ Hot-key တစ္ခုစီကို Set လုပ္ၿပီး၊ Auto Run Option ေလးေတြ လုပ္လို႔ရတယ္။ တကယ္လို႔ Program ေတြ Auto loading လုပ္တာ မလိုလားရင္ Run on Windows Startup Option ကို 0ff ထားၿပီး၊ USB Safely Remove Program ကို လိုအပ္တဲ့ အခ်ိန္မွာပဲ ဖြင့္ၿပီး အသံုးျပဳႏိုင္ပါတယ္မယ္။
How to fix System Restore?
PC မွာ Restore Point ေဟာင္းေတြ မရိွေတာ့ဘူး။ Windows ကလည္း Restore Point ေတြ ေနာက္ထပ္ ဖန္တီးမေပးေတာ့ဘူး။ System Restore ကို ဘယ္လို ျပန္ျပင္မလဲ ???

Windows XP နဲ႔ Vista မွာ System Restore ဟာ Registry နဲ႔ အေရးၾကီးတဲ႔ System file ေတြကို အလိုေလ်ာက္ မၾကာခဏ ထိန္းသိမ္းထားေပးပါတယ္။ ဒါေပမယ့္ System Restore က Back up ေတြ Restore Point ေတြကို ဖန္တီး မေပးႏိုင္ေတာ့တဲ႔ အေျခအေနေတြ ရိွလာတတ္ပါတယ္။
Free Space အလံုအေလာက္ မရိွတဲ့အခါ။ Restore Point တစ္ခုကို create လုပ္ဖို႔ System Partation (သို႔) System Drive မွာ အနည္းဆံုး Free Space 200 MB လိုပါတယ္။ တကယ္လို႔ Free Space လံုလံုေလာက္ေလာက္ မရိွခဲ့ရင္ PC ဟာ Restore Point အသစ္ေတြကို ဆက္လက္ Create လုပ္ေပးေတာ့မွာမဟုတ္ပါဘူး။ ၿပီးေတာ့ ရိွျပီးသား Restore Point ေတြကိုလည္း ဖ်က္ပစ္ႏိုင္ပါတယ္။
Task Scheduler အလုပ္ မလုပ္တဲ့အခါ။ System Restore ဟာ Restore Point ေတြကို ေန႔စဥ္အလိုေလ်ာက္ Create လုပ္ေပးႏိုင္ဖို႔ Windows ရဲ့ Task Scheduler ကို အသံုးျပဳပါတယ္။ Task Scheduler အလုပ္ လုပ္/မလုပ္ စစ္ေဆးဖို႔ Start ကိုႏိွပ္၊ Run မွာ services.msc ကို ရိုက္ျပီး ၀င္ပါ။ Services Dialog Box ေပၚလာရင္ Scroll Bar နဲ႔ ေအာက္ကိုဆင္း၊ Task Scheduler မွာ Right Click ႏိွပ္ၿပီး Properties ကို ေရြးပါ။ Service Status မွာ Start လုပ္မထားေသးရင္ Start ကို ႏိွပ္ပါ။ ၿပီးရင္ Startup Type မွာ Automatic ကို ေရြးၿပီး OK ကို ႏိွပ္ပါ။
Operating System မရပ္မနား အၿမဲအလုပ္လုပ္ေနရတဲ့အခါ။ System Restore ဟာ PC ဖြင့္ထားေပမယ့္ အလုပ္မလုပ္ဘဲ နားေနတဲ့အခ်ိန္ (Idel State)မွာ Restore Point ေတြကို အလိုေလ်ာက္ အၿမဲ ဖန္တီးေပးပါတယ္။ PC ကို အၿမဲ ပိတ္ထားရင္ ဒါမွမဟုတ္ အၿမဲအလုပ္လုပ္ေနရင္ System Restore ဟာ အလုပ္လုပ္မွာ မဟုတ္ပါဘူး။
System Restore ဟာ ပံုမွန္ အလုပ္လုပ္ေနရင္ေတာင္မွ Restore Point တိုင္းကို အသံုးျပဳလုိ႔မရပါဘူး။ Restore Point တိုင္းဟာ ျပည့္စံုတဲ့ Back up ေတြ မဟုတ္ပါဘူး။ Restore Point တစ္ခုစီဟာ ယခင္ Restore Point ေနာက္ပိုင္းမွာ ျဖစ္ခဲ့တဲ့ ေျပာင္းလဲမႈေတြကိုသာ ထိန္းသိမ္းထားပါတယ္။ မူလအေျခေနေကာင္းတစ္ခုခုကို ျပန္လည္ရယူႏိုင္ဖို႔ System Restore ဟာ Restore Point ေတြအားလံုးကို အသံုးျပဳရတဲ့ အေျခေနေတြၾကံဳလာတတ္ပါ တယ္။ အဲဒီလိုၾကံဳလာရတဲ့ အေျခအေနမ်ိဳးမွာ Restore Point တစ္ခုခု ပ်က္စီးသြားခဲ႔မယ္ဆိုရင္ တျခား Restore Point ေတြကိုလည္း သံုးလို႔ရေတာ့မွာမဟုတ္ပါဘူး။
တကယ္လို႔ အလုပ္ဆက္လုပ္ဖို႔ Restore Point တစ္ခုမွ မရႏိုင္ေတာ့ဘူးဆိုရင္ Restore Point အားလံုးကို ဖ်က္ပစ္ပါ။ System Restore ကို Off လုပ္ျပီး ျပန္ On ပါ။ Window XP မွာ Start ကို ႏိွပ္ျပီး Run မွာ sysdm.cpl ကို ေရးၿပီး ၀င္ပါ။ System Restore Properties Dialog Box မွာ System Restore Tab ကို ႏိွပ္ၿပီး Turn off System Restore on all drives ေဘးမွာ အမွန္ျခစ္ကေလး ေပးလုိက္ပါ။ Apply ကို ႏိွပ္ပါ။ ၿပီးရင္ ေစာေစာက အမွန္ျခစ္ထားတာ ေလးကို ျပန္ျဖဳတ္ၿပီး OK ကို ႏိွပ္ပါ။ Window Vista မွာဆိုရင္ Start ကို ႏိွပ္ၿပီး sysdm.cpl ကိုေရးၿပီး Enter ကို ႏိွပ္ပါ။ System Protection tab ကို ႏိွပ္ၿပီး ဒါမွမဟုတ္ open System Protection ကို ေရြးခ်ယ္ၿပီး Local Disk (C:) ေဘးက အမွန္ျခစ္ေလးကို ျဖဳတ္ပါ။ System Restore Pop-up မွာ Turn off System Restore ကို ေရြးခ်ယ္ပါ။ Apply ကို ႏိွပ္ပါ။ ၿပီးရင္ Local Disk (C:) ကို ျပန္စစ္ေဆးၿပီး OK ကို ႏိွပ္ပါ။


DES (10) - Iteration ၿပဳလုပ္ၿခင္းနွင့္ PC-2
ဒီ PC-1 အရ 64bits ကေန 56 bits ေၿပာင္းတယ္ဆိုေတာ့ နဂို 64bits ကေန 8bits ေလ်ာ့သြားပါတယ္။ အဲဒါေတြကေတာ့ 8,16,24,32,40,48,56 နဲ႔ 64 ခုေၿမာက္ bits ေတြ ၿဖစ္ပါတယ္။

အဲဒီ 56bits ကိုမွ C နဲ႔ D ခြဲ၇မွာ ၿဖစ္ၿပီး ပထမ 28bits (1-28¬) ဟာ C ၿဖစ္ၿပီး ေနာက္က 28bits (29-56) ဟာ D ၿဖစ္ပါတယ္။ C0 နဲ႔ D0 ရၿပီ ဆိုရင္ Left shift (ဘယ္ဘက္သို႔ အစားထိုးၿခင္း) ၿပဳလုပ္ရမွာ ၿဖစ္ပါတယ္။ C နဲ႔ D အတြက္ left shift 16 rounds ရွိပါတယ္။ Iterarion ဖယား ကိုေတာ့ ေအာက္မွာ ေဖာ္ၿပလိုက္ပါတယ္။


ဒီဇယားအရ C0 နဲ႔ D0 အတြက္ left shift ဟာ 1 ၿဖစ္ပါတယ္။ ဒီေတာ့ C0 ရဲ႕ 1st ေနရာက bit ဟာ 32nd ေနရာကို ေရာက္မွာၿဖစ္ၿပီး အရင္ 32nd က 31st ၿဖစ္သြားမွာၿဖစ္ပါတယ္။ D0 ဟာလဲ ဒီအတိုင္း ၿဖစ္ပါတယ္။ C0 နဲ႔ D0 ကို shifted လုပ္ၿပီးရင္ C1 (28 bits) နဲ႔ D1 (28 bits) ရမွာၿဖစ္ပါတယ္။ အဲဒီ 56bits ကို Permuted choice -2 (PC-2) အရ ေနရာေရႊ႕လိုက္ရင္ key1 အတြက္ 48bits ရပါၿပီ။ ပံု(၁၂) မွာၾကည့္ပါ။



ပံု(၁၂)
အခုရထားတဲ့ Key1 (48btis) ဟာ function ထဲမွာ E-bits (48bits) နဲ႔ XOR ၿပဳလုပ္ရမွာ ၿဖစ္ပါတယ္။ အရင္ရထားတဲ့ C1 နဲ႔ D1 ကိုသံုးၿပီး key algorithm ကအတိုင္း left shift ဇယား နဲ႔ တြဲၿပီး ဆက္လုပ္ရင္ C2 နဲ႔ D2 ကိုရမွာပါ။ အဲလို ဆက္လုပ္သြားရင္ key 16 round အတြက္ရမွာပါ။

DES (09) - KEY ၿပဳလုပ္ၿခင္း
Key algorithm မွာလည္း encryption algorithm မွာလိုပဲ 16 round ရွိပါတယ္။ key algorithm အတြက္ Input ဟာ 64 bits ၿဖစ္ပါတယ္။ Input key 64 bits ကေတာ့ password သေဘာမ်ိဳးနဲ႔ ၾကိဳက္တာ ထားႏူိင္ပါတယ္။ ဒါေပမဲ့ တခု သတိထား ရမွာက key ဟာ Text အေရအတြက္ထက္ နဲလို႔ မရပါဘူး။ (ဥပမာ Text ဟာ 64 bits(3 rounds) ဆိုရင္ Key ဟာလည္း 64 bits(3 rounds) ရွိရမွာ ၿဖစ္ပါတယ္) ။ Key algorithm အရ input 64 bits ကို permuted choice 1 (PC1) အရ permutation လုပ္ရင္ 56 bits ရမွာ ၿဖစ္ပါတယ္။ Key algorithm နဲ႔ PC1 ကိုေတာ့ ေအာက္မွာ ေဖာ္ၿပလိုက္ပါတယ္။




ပံု (၁၀)
ပံု (၁၁)
Key algorithm နဲ႔ PC1



Programmer အႀကိဳက္ Online ရတနာသုိက္မ်ား
from Knowledge is Free by kmo
6 people liked this

ပ႐ုိဂရမ္းမင္း (Programming) ဘာသာရပ္ကုိ ေလ့လာလုိသူမ်ားအတြက္ Online ေပၚက ရင္းျမစ္ (resources) ေတြကို ညႊန္းခ်င္ပါတယ္။ ပညာရပ္တစ္ခုဆုိတာ ေလ့လာေလ နက္နဲေလ၊ ရွာေဖြေလ ေတြ႕ရွိေလပါပဲ။ ပုိၿပီး က်ယ္ျပန္႔စြာသိခ်င္ရင္ Online မွာ Programming နဲ႔ coding ေတြအတြက္ ရွာႏုိင္တဲ့ေနရာေတြ အမ်ားႀကီးပါ။

Java
Trail: Learning the Java Language
http://java.sun.com/docs/books/tutorial/java/TOC.html

Sun Microsystem ရဲ႕ Java 'Trail' ကေတာ့ တကယ္ေကာင္းတဲ့ site လုိ႔ ေျပာရမယ္။ Java ကုိ ေလ့လာတုန္းက နားမလည္တာေတြ အားလုံး၊ ျပႆနာေတြအားလုံးကို ဒီ site ကေန ေျဖရွင္းေပးႏုိင္တယ္လုိ႔ ညႊန္းၾကပါတယ္။ 'Trail' site က လက္ဦးအစသမားေတြအတြက္ အေတာ္ေလးလုံေလာက္တယ္လုိ႔ ဆုိရမယ္။ ဒီ လုိင္းမွာ objects, classes, inheritances, interface နဲ႔ packages ေတြ အားလုံးနဲ႔ပတ္သက္ၿပီး အေျခခံကစ ရွင္းျပထားပါတယ္။ ဒီေနရာကေန စဥ္းစားဆင္ျခင္ႏုိင္စြမ္းေတြကို concept အေနနဲ႔ အမ်ားႀကီး ရႏုိင္တယ္။ အဆင့္ျမင့္ႀကီးေတြ မေျပာေသးဘဲ အဆင့္လုိက္အေသးစိတ္ကုိ ေလ့လာႏုိင္တယ္။ နားလည္လြယ္တဲ့ ဥပမာေတြ အမ်ားႀကီး ထည့္ၿပီးရွင္းျပထားပါေသးတယ္။

Java Beans
http://www.netbeans.org/kb/trails/java-se.html

Java Beans ကေတာ့ Tutorial ေတြလုပ္ဖုိ႔ တကယ့္စာၾကည့္တုိက္ႀကီး တစ္တုိက္လုိ႔ ေျပာရမယ္။ Java Programmer ေတြအတြက္သာမက C++ နဲ႔ PHP သမားေတြအတြက္ပါ အမ်ားႀကီး ပတ္သက္ေနတဲ့ ေနရာလုိ႔ ေျပာရမယ္။ Java Beans မွာ Java ပ႐ုိဂရမ္အဖဲြ႕၀င္ေတြကလည္း သူတို႔ content ေတြနဲ႔ အမ်ားႀကီး အေထာက္ အကူ ျပဳထားတာ ေတြ႕ရတယ္။ အဖဲြ႕၀င္ေတြက သူတုိ႔ေတြ႕ထားတဲ့၊ သိထားတဲ့ ပ႐ုိဂရမ္ tutorial ေတြကိုလည္း တင္ထားေပးပါတယ္။

Java Lessons
http://javalessons.com

ဒီ website မွာေတာ့ ေလ့က်င့္ခန္းေတြနဲ႔ assignment ေတြ အမ်ားႀကီး သြားေတြ႕လုိက္ရတယ္။ Java Lessons က tutorial ေတြ မ်ားစြာ ေပးထားပါတယ္။ ဒါေပမယ့္ ဥပမာေတြေပးၿပီးေတာ့ပဲ focus လုပ္ထားတယ္။ ဒီ site မွာ mechanics of the language နဲ႔ ႐ႈပ္ေထြးလွတဲ့ statement ေတြရဲ႕ ရည္ရြယ္ခ်က္ေတြကို ေဖာ္ျပထားတယ္။ ပုံစံ အမ်ဳိးမ်ဳိး ရွင္းလင္းခ်က္အဖုံဖုံနဲ႔ စာၾကည့္တုိက္တစ္တုိက္စာေလာက္ ရွင္းလင္းခ်က္ေတြကို ေတြ႕ႏုိင္တယ္။ ဥပမာ တစ္ခုကို click ႏွိပ္လိုက္တာနဲ႔ 'lesson viewer' ကုိ ေတြ႕ႏုိင္ၿပီး အဲဒီအထဲမွာ source code ေတြကို ေနာက္ထပ္ window တစ္ခုနဲ႔ ဖတ္ႏုိင္မွာပါ။ လုိင္းတစ္လုိင္းစီရဲ႕ ရွင္းလင္းခ်က္ေတြကို သိခ်င္ရင္ အျခား window တစ္ခုနဲ႔ ထပ္မံေလ့လာႏုိင္ပါတယ္။ Code လုိင္းေတြေပၚက cursor ကို ဖယ္လုိက္တာနဲ႔ viewer က ဆက္စပ္ေနတဲ့ ရွင္းလင္းခ်က္ေတြကို highlight နဲ႔ ေဖာ္ျပမွာ ျဖစ္ပါတယ္။ အျမင္ပုိင္းဆုိင္ရာကေတာ့ ဒီ website ဟာ သိပ္ၿပီး ေတာ့ ထူးျခားမႈမရွိေပမယ့္ အသုံးက်မႈကေတာ့ တန္ဖုိးျဖတ္လုိ႔ကို မရႏုိင္ပါဘူး။

Java World Community
http://www.javaworld.com/community

Java World ရဲ႕ main page မွာတင္ တကယ္ေကာင္းတဲ့ ေဆာင္းပါးေတြ တင္ထားတာေတြ႕ရမယ္။ ဒီေဆာင္းပါး ေတြဟာ programming နဲ႔ပတ္သက္ၿပီး နားလည္ေစႏုိင္႐ုံမွ်မက ခ်ဲ႕ေတြးမယ္ဆုိရင္ အမ်ားႀကီး ေတြးလုိ႔ရတယ့္ ေဆာင္းပါးေတြ ျဖစ္ပါတယ္။ Java World မွာ community section ဆိုတာပါတယ္။ ဒီ က႑ကေန Java နဲ႔ ပတ္သက္တဲ့ Q&A forum ေတြအျပင္ အျခားသက္ဆုိင္ရာ blog ေတြဆီကိုလည္း သြားႏုိင္ပါလိမ့္မယ္။

Java Coffee Break
http://www.javacoffeebreak.com/

ဒီ site ဟာ Java Coffee Break ရဲ႕ Library of tutorial က အေတာ္ေလးေဟာင္းေနၿပီလုိ႔ ဆုိရမယ္။ ဒီ site မွာ ေရးတဲ့သူေတြက ၁၉၉၆ ေလာက္ကတည္းကေလ။ ဒါေပမယ့္ တကယ့္ language နဲ႔ပတ္သက္ၿပီး ႏႈိက္လုိတဲ့ ေနာက္ေပါက္ေတြ အတြက္ကေတာ့ တန္ဖုိးမျဖတ္ႏုိင္တဲ့ ေနရာႀကီး တစ္ခုပါ။ ကိုယ္ဘာေတြ သိခ်င္လုိခ်င္တယ္ ဆုိတာကုိ ဒီ site မွာ ဆုံးျဖတ္ႏုိင္လိမ့္မယ္ ထင္ပါတယ္။

C++
Visual C++ Developer Centre
http://msdn.microsoft.com/en-us/visualc/default.aspx

C++ ရဲ႕ တရား၀င္ website တစ္ခုပါ။ ဒီဘာသာရပ္နဲ႔ ပတ္သက္တာမွန္သမွ် အားလုံးအေျဖေတြရွိတယ္ဆုိတဲ့ ေနရာမ်ဳိးေပါ့။ Microsoft Developer Network က download နဲ႔ tutorial ေတြ အမ်ားႀကီး ျဖည့္ဆည္းေပးထား တယ္။ C++ ကုိ စတင္ေလ့လာခ်င္သူေတြ၊ စိတ္ပါ၀င္စားၿပီး ကုိယ္ပုိင္ေလ့လာခ်င္သူေတြအတြက္ အေထာက္ အကူျပဳမယ့္ site လုိ႔ ဆုိခ်င္ပါတယ္။

CProgramming.com
http://www.cprogramming.com/
CProgramming.com ဟာ တကယ့္အံ့ခ်ီးဖြယ္ tutorial library ႀကီးလုိ႔ ဆိုႏုိင္တယ္။ C ေရာ C++ အတြက္ပါ အေျခခံကစၿပီး ရွင္းျပႏုိင္တဲ့လုိင္း ျဖစ္ပါတယ္။ OpenGL လုိ ေခါင္းစဥ္ေအာက္ကေန ေလ့လာစရာေတြ အမ်ား ႀကီးပါ။ CProgramming ရဲ႕ ျပႆနာတစ္ခုကေတာ့ update သိပ္မလုပ္တာပဲ ျဖစ္ပါတယ္။ သုိ႔ေသာ္ျငားလည္း ညႊန္းလုိတာကေတာ့ C++ နဲ႔ ပတ္သက္ရင္ ဒီ site မွာ အျပည့္စုံဆုံး ရႏုိင္တယ္ ဆုိတာပဲ။

alt.com.lang.c-c++
http://groups.google.com/group/comp.lang.c++/topics?lnk

Usenet group က C++ နဲ႔ပတ္သက္ၿပီး လႈပ္ရွားေနတဲ့ site လို႔ ေျပာရမယ္။ ဒီ site မွာ ေထာင္ေပါင္းမ်ားစြာ ေသာ ေထာက္ပံ့သူေတြရွိတယ္။ ေမးခြန္းေလးေတြ ျပန္ေျဖတာေတာင္ အေသးစိတ္ ေျဖေပးထားတယ္။ ၁၉၈၆ ႏုိ၀င္ဘာလေလာက္ကတည္းက ေထာင္ေပါင္းမ်ားစြာေသာ post ေတြကုိလည္း ဒီမွာေတြ႕ႏုိင္တယ္။ C++ နဲ႔ ပတ္သက္ၿပီး အေတာ္ေလးလည္း အေတြ႕အႀကဳံဗဟုသုတ ရွိတယ္ဆုိရင္ ဒီအဖဲြ႕ႀကီး ဆက္လက္တည္တံ့ေနတာ ကုိပဲ ေက်းဇူးတင္ထုိက္တယ္။ ဒီအထဲမွာ ေမးခ်က္၊ ေျဖခ်က္၊ ေဆြးေႏြးခ်က္ေတြဟာ တစ္ဦးခ်င္းအေနနဲ႔ ၾကည့္ၾကည့္၊ အဖဲြ႕လုိက္အေနနဲ႔ ၾကည့္ၾကည့္ တန္ဖုိးမျဖတ္ႏုိင္စရာ ရတနာသုိက္ႀကီးပမာ ယေန႔တုိင္ ျဖစ္ေနဆဲလုိ႔ ဆုိႏုိင္တယ္။

LearnCpp.com
http://www.learncpp.com/

အေျခခံက်က် tutorial ေတြနဲ႔ website တစ္ခုေပါ့။ ဒီဘာသာစကားနဲ႔ပတ္သက္ၿပီး အေတြ႕အႀကဳံရွိသူေတြ အတြက္ ရည္စူးၿပီး သီးသန္႔ပညာရွင္ဆန္တဲ့ website လုိ႔ ဆုိႏုိင္ပါတယ္။ ဒီ site ဟာ တကယ့္ေစ်းကြက္၀င္ ပညာရွင္ အဆင့္ဆင့္ေလာက္အထိကို ရည္စူးၿပီး သုေတသန လုပ္ထားတာေတြ တင္ထားတာေၾကာင့္ ခုမွစတင္ ေလ့လာသူေတြအေနနဲ႔ေတာ့ အသက္႐ႈမွားေလာက္တဲ့ site လုိ႔ ဆုိရမယ္။

CPlusPlus.com
http://www.cplusplus.com/

ဒီ site မွာလည္း tutorial ေတြ အမ်ားႀကီး ရွိတယ္။ အမွန္ေတာ့ ဒီ site မွာ ေရာင္းေနတာေတြက လက္ရွိ active ျဖစ္ေနတဲ့ forum ေတြနဲ႔ ဥပမာေကာင္းေကာင္းေတြ စုစည္းခ်က္ေတြပါ။ ဒါေတြကို အလကား မရပါဘူး။ အဲဒီ ခက္ခဲ နက္နဲတဲ့ source code ေတြကို download လုပ္ယူႏုိင္ပါတယ္။ Compiled လုပ္တာေတြ၊ run တာေတြကို အျခား DOS သုိ႔မဟုတ္ Windows နဲ႔ လုပ္ၾကည့္ႏုိင္ပါတယ္။

Visual Basic
Visual Basic Developer Centre
http://msdn.microsoft.com/en-us/vbasic/default.aspx

Microsoft ရဲ႕ တစ္ေက်ာ့ျပန္ ထိပ္တန္းက်တဲ့ website တစ္ခုလုိ႔ ေျပာရမယ္။ Microsoft ရဲ႕ ဒီ Visual Basic website ဟာ C++ page ေတြကုိလည္း ထည့္ေပးထားတယ္။ Tutorial အမ်ဳိးမ်ဳိးကိုလည္း download လုပ္ယူ ႏုိင္တယ္။ စိတ္၀င္စားစရာေကာင္းတာက Video Tutorial ေတြပါ download လုပ္ႏုိင္တာပါ။ Microsoft Developer Network ရဲ႕ C++ page နဲ႔ Sun Microsystem က Java trial ေတြကုိလည္း ဒီ site မွာ ေလ့လာ ႏုိင္တာက ပုိၿပီး အဆင္ေျပေစႏုိင္ပါတယ္။ ေနာက္ေပါက္ ပ႐ုိဂရမ္မာအသစ္ေတြအေနနဲ႔ ဒီ site က video သ႐ုပ္ ျပသင္ၾကားခ်က္ေတြဟာ လြန္စြာေကာင္းေလာက္ေအာင္ အေထာက္အကူ ျဖစ္ေစႏုိင္ပါလိမ့္မယ္။

Mark-up and Scripting Languages
W3Schools
http://www.w3schools.com/
ဒီ site မွာ တကယ္ေကာင္းတဲ့ array of tutorial ေတြကို ျပင္ခြင့္၊ ၀င္ေရးခြင့္ေတြ ရႏိုင္ေအာင္ စီစဥ္ေပးထား တယ္။ ေစ်းကြက္၀င္ script ေတြျဖစ္တဲ့ ASP, CSS, HTML, Javascript, PHP, SQL နဲ႔ XML ေတြ အားလုံး ဒီအထဲမွာ ေလ့လာႏုိင္တယ္။ ဒီ site ရဲ႕ library of tutorials ဟာ အရမ္းက်ယ္ျပန္႔တဲ့သေဘာ ရွိတယ္။ လုိခ်င္ သေလာက္ အေရအတြက္ ဒီမွာမေလ့လာႏုိင္တာကို အဆုိးျမင္လုိ႔ေတာ့ မရဘူး။ သူထည့္ထားသမွ် content ေတြ ဟာ တကယ့္အရည္အေသြးျပည့္ စမ္းသပ္ခ်က္ေတြ ျဖစ္ေနတာကို အသိအမွတ္ျပဳရလိမ့္မယ္။ ဒါေပမယ့္ ဥပမာ ေတြအမ်ားႀကီးေတာ့ ရွိတယ္။ ျပႆနာတစ္ခုခုကို W3School မွာ ႀကိဳက္ရာဘာသာ language နဲ႔ ၀င္ၿပီး ေလ့လာႏုိင္တယ္ဆုိတာက အခြင့္အေရးတစ္ခုလို႔ မွတ္လိုက္ပါ။ ၿပီးျပည့္စုံတဲ့ site တစ္ခုမဟုတ္ေသးေပမယ့္ အစ သမားေတြေရာ၊ ကၽြမ္းက်င္သူေတြပါ အားကိုးထိုက္တဲ့ site ျဖစ္ပါတယ္။

PHPFreaks
http://www.phpfreaks.com/
PHP coding ေတြနဲ႔ပတ္သက္ၿပီး tutorial ေတြအျပင္ တကယ့္ေျပာင္ေျမာက္တဲ့ active forum ေတြကုိပါ ေလ့လာ ႏုိင္ပါတယ္။

HTML:An Interactive Tutorial
http://www.davesite.com/webstation/html/
အေျခခံက်က် tutorial ေကာင္းေကာင္းေတြ ထည့္ထားတယ္။ HTML ကုိ စတင္ေလ့လာခ်င္သူေတြအတြက္ ေကာင္းတယ္။ Coding ေတြအျပင္ website design ေတြကုိပါ အေျခခံကစၿပီး ေလ့လာႏုိင္တယ္။

YourHTMLSource/JavaScript
http://www.yourhtmlsource.com/javascript
JavaScript နဲ႔ ပတ္သက္ၿပီး နိဒါန္းသေဘာေလာက္ေတာ့ ေလ့လာႏုိင္လိမ့္မယ္။ ဒီ site ရဲ႕ အဓိကဟာ URL နဲ႔ ပတ္သက္ၿပီး အႀကဳံျပဳခ်က္ေတြအျပင္၊ HTML နဲ႔ ပတ္သက္ၿပီး focus လုပ္ထားတာေတြေလာက္ပဲ ရွိတယ္။

JavaScript Kit
http://www.javascriptkit.com/javatutors
အေတာ္ေလးေဟာင္းေနတဲ့ website လုိ႔ဆုိရမယ္။ Y2K bug ေတြနဲ႔ပတ္သက္ၿပီး ရွင္းခ်က္ေတြရွိတယ္။ JavaScript နဲ႔ ပတ္သက္ရင္ အရည္အေသြးျပည့္ tutorial ေတြအမ်ားဆုံး စုေဆာင္းထားႏုိင္တဲ့ library တစ္ခု လုိ႔ေတာ့ အသိအမွတ္ျပဳရလိမ့္မယ္။ JavaScript ကုိ အထူးျပဳလုိက္စားသူေတြ အေျခခံက်က် ျပန္ေလ့လာခ်င္ တယ္ဆုိရင္ ၀င္ၿပီးေလ့လာသင့္တဲ့ site လုိ႔ အႀကံျပဳခ်င္ပါတယ္။

SQLzoo.net
http://www.sqlzoo.net/
SQL နဲ႔ ပတ္သက္ၿပီး နိဒါန္းပ်ဳိးေပးထားတဲ့ site လုိ႔ဆုိႏုိင္တယ္။ တကယ့္ interactive ျဖစ္တဲ့ ဥပမာေတြ ေပးထားတာက ေလ့လာခ်င္သူေတြအတြက္ အေထာက္အကူမ်ားစြာ ျဖစ္ေစပါလိမ့္မယ္။

HTML.net
http://www.html.net/
HTML, CSS နဲ႔ပတ္သက္ၿပီး အေျခခံက်က် tutorial ေတြ ထည့္ေပးထားတယ္။ Tutorial ေတြကေတာ့ လက္ခံ ခ်င္လည္း လက္ခံလုိ႔ရသလုိ လက္မခံခ်င္ရင္လည္း ရတဲ့ ဉာဏ္ပြားၿပီးစဥ္းစားစရာ ျပႆနာေတြနဲ႔ ျဖစ္ပါတယ္။ ဒါေပမယ့္ တကယ့္ကို အေျခခံက်က် စဥ္းစားေပးထားတယ္။ သူတို႔နဲ႔ W3School site က tutorial ေတြဟာ သိပ္ မနီးစပ္တာေတြ ျဖစ္ေကာင္းျဖစ္ႏုိင္တယ္။ အေတြ႕အႀကဳံ မရွိေသးသူေတြအတြက္ကေတာ့ အဆင္ေျပစြာ ေလ့က်င့္ႏုိင္မယ့္ ေနရာေကာင္းတစ္ခုလုိ႔ ဆုိႏုိင္ပါတယ္။

The Python Tutorial
http://docs.python.org/tutorial
အ႐ုိးဆုံးအမည္နဲ႔ အရွင္းဆုံး website လုိ႔ ဆုိခ်င္ပါတယ္။ Python Tutorial မ်ားကုိ အေျခခံကစၿပီး ေတြးရင္ ေတြးသေလာက္ ခရီးေရာက္တဲ့ language လုိ႔ ဆုိခ်င္တယ္။ ကုိယ္ပိုင္အေတြးနဲ႔ programming ကုိ တည္ေဆာက္ခ်င္သူေတြအေနနဲ႔ျဖစ္ေစ၊ လြယ္လြယ္နဲ႔စၿပီး အေကာင္းဆုံးရလဒ္ကို ရယူဖန္တီးခ်င္သူေတြ အတြက္ျဖစ္ေစ၊ ဒီ site ကေတာ့ အမွတ္ျပည့္ေပးရမယ့္ site လုိ႔ ဆုိခ်င္တယ္။

Beginners, Non-Programmers
Guide to Python
http://wiki.python.org/moin/BeginnersGuide/NonProgrammers
Python tutorial ေတြ အမ်ားႀကီးေပးထားၿပီး ေနာက္ထပ္ အသစ္ေတြကို ဆဲြေခၚထားတဲ့ site လုိ႔ ဆုိႏုိင္တယ္။ အထူးသျဖင့္ေတာ့ ဒီ site ဟာ ကေလးေတြအတြက္ရည္စူးၿပီး ကေလးပ႐ုိဂရမ္မာေတြ ထြက္ေပၚေရးမ်ား လုပ္ထားသလားလုိ႔ ထင္ရတယ္။ လြယ္လြယ္နဲ႔ ပ႐ုိဂရမ္ကုိ ေလ့လာခ်င္ရင္ ၀င္ၾကည့္ေပါ့။


No comments: