Sunday, October 12, 2008

Install Subversion บน Windows

เนื่องจากบนเน็ท ทั้งใน Blog คนไทยและคนต่างประเทศ ทำตามแล้วไม่ตรง เนื่องจากมีการเปลี่ยนแปลงคำสั่งของ SVN Server เล็กน้อย บวกกับคนที่เป็น Newbie ย่อมงงเป็นธรรมดา

ไหนๆก็งงมาตั้งนานขอเอามา post เก็บไว้เผื่อใครมาติดแบบผมจะได้ไปได้ไว

INTRODUCTION

เราจะติดตั้งระบบ Subversion เพื่อใช้ในการภายในครับ Software ที่ใช้ได้แก่
- CollabNet Subversion ผมใช้ CollabNetSubversion-server-1.5.2-2.win32.exe
เป็น Installer สำเร็จ ส่วนจะสำเร็จไม่สำเร็จนั้นอีกเรื่องหนึ่ง... เอ้อ ผมเป็น Server โหลดที่ีนี่ครับ
http://www.collab.net/downloads/subversion/

- ตัว Tortoise SVN ถือว่าจะใช้เป็น Client ครับ ผมใช้ TortoiseSVN-1.5.3.13783-win32-svn-1.5.2.msi
โหลดไว้ซักพักแล้ว เป็น Installer สำเร็จจริงๆ ก็ลงแล้วใช้ได้เลยนะ โหลดที่นี่ครับ
http://tortoisesvn.net/downl
oads

มีแค่ 2 ตัวนี้ละครับ ที่จริงผมลอง WinCVS ด้วย เดี๋ยวจะเล่าถึงความงงให้อ่านทีหลัง

เริ่มกันเลย
1. ทั้ง 2 ตัวไม่ขึ้นต่อกัน (as far as I know นะครับ) ลงไปเลย แต่ก็จะเขียนตามที่ผมทำละกันครับ
บังเอิญผมลง เจ้า Tortoise SVN ก่อนครับ ก็ลงปกติ

เลือก Path ที่จะลง จะไว้ใน Program file ก็ได้ครับ หรือจะไว้ drive อื่นก็ไม่เป็นปัญหา
Next โลด แล้วเสร็จก็ Restart เครื่องซะ 1 ที

2. เสร็จแล้วมาลง CollabNet Subversion Server กัน เป็น Installer ก็เลือกตามไปปกติครับ

มันให้เลือกเลือก port ของ Subversion ปกติก็เลือก 3690

มันให้เลือกที่อยู่(Folder ของ Repository) ผมก็เลือกตามมัน เปลี่ยนหน่อยตรงที่ผมให้มันอยู่ Drive D:
เป็น D:\svn_repository ก็ธรรมดานะ

มันให้เลือก port ของ Apache (โอ้โห มี Apache ให้ด้วย) ผมไม่เอา 80 เพราะจะชนกะตัวอื่น ผมยังไม่รู้ว่าจะกระทบอะไรเมื่อไร แต่ถ้าทราบแล้วจะเอามาเขียน update ครับ (แต่ว่าตอนใช้งาน ผมก็ไม่ระบุ port นะถึงจะสร้าง project ได้ ก็ยังงงๆอยู่เหมือนกันคนับว่าจะไปใช้ตอนไหน เชื่อว่าใช้กับ Client ที่เป็น Browser อยู่แล้วละนะ)

มันให้เลือก Repository Folder อีกแล้ว ผมก็ว่าอะไรนักหนานะ แล้วก็ใส่ให้มันตามเดิม แล้ว Next
(ขออภัยครับ ไม่ได้มีรูปเลย)

มันให้เลือกอะไรอีกนิดหน่อย ผมจำไม่ได้ มีการให้เลือกว่าจะให้ View Tools อะไรซักอย่าง เข้าถึงได้มั้ย
บังเอิญผม Setup แบบ Newbie ก็ขอเปิดด้วยละกัน เพราะคุ้นๆว่าอาจได้ใช้ แล้วก็ไม่ได้ห่วย Security เพราะจะใช้ใน LAN

จบแล้วครับ มันควรจะใช้ได้ แต่ยังครับ

3. เราต้องแก้ไข user-password ของ Subversion ซักหน่อย
ผมอ่านตามเวบนี้ครับ
http://blogs.vertigosoftware.com/teamsystem/archive/2006/01/16/Setting_up_a_Subversion_Server_under_Windows.aspx
ข้ามไปข้อ C) ของเค้าเลยนะครับ เพราะก่อนหน้านั้น Wizard ของการลง ColabNet นั้นจัดการเรียบวุธไปแล้ว

ขออนุญาติเอามาแปะไว้นะครับ (ขอมันซะที่ประเทศไทยนี่แหละ)

C) Create a Repository

  1. Open a command prompt and type อันนี้เค้าจะสร้าง Repository ที่จริง Wizard ทำแล้วแต่พอเราเข้าไปดูจะเห็นเป็นแค่ Folder เปล่าๆครับ ทีแรกผมสร้างใหม่ อีก Folder หนึ่ง แต่แนะนำว่าใช้อันเดิมไปเลย (เพราะตอนท้ายเราจะไม่ต้องมาแก้ Service ที่ Wizart Gen เอาไว้ให้แล้ว)
    svnadmin create "c:\Documents and Settings\Subversion Repository" ก็พิมพ์ตามนี้ครับ แก้ Folder เป็นของคุณเองนะครับ
  2. Navigate to the folder we just created. Within that folder, uncomment the following lines in the /conf/svnserve.conf file: แก้ Conf file ที่ Folder ที่สร้างขึ้น
    [general]
    anon-access = read
    auth-access = write
    password-db = passwd

    Next, uncomment these lines in the /conf/passwd file:

    [users]
    harry = harryssecret
    sally = sallyssecret
มีการตั้ง user/password ด้วย ตั้งที่ File passwd นี่หละครับ (บังเอิญผมไม่สนเรื่องความปลอดภัยอะไรอะครับ)

4. ตรวจตามเค้า

D) Verify that everything is working

  1. Start the subversion server by issuing this command in the command window:
    svnserve --daemon --root "C:\Documents and Settings\Subversion Repository"    

    ตรงนี้หน้าจอ conmmand จะค้างนะครับ
    ไม่ต้องแปลกใจเพราะเป็นการตั้งใจของเค้าที่จะรันโปรแกรมเอง ก่อนที่จะไปทำ Service
  2. Create a project by opening a second command window and entering this command:

    svn mkdir svn://localhost/myproject

    ให้เปิดหน้า command ใหม่ขึ้นมาแล้วทำต่อ ตรงนี้ที่ผมงงว่าตกลงใช้ port อะไรแต่ที่ลอง ไม่ต้องใส่ port ครับ
    แม้ว่าผมจะ set ให้ Apache เป็น port อื่นไปก็ตาม ก็ต้องไม่ใส่ port

    It's a standard Subversion convention to have three folders at the root of a project:
    เค้าว่ามันจะสร้าง Folder ตามนี้ ผมก็ยังไม่เห็นนะ

    /trunk
    /branches
    /tags

  3. At this point, Notepad should launch: พอเรา enter ในขั้นตอนที่แล้วปุ้บ มันก็จะขึ้น Editor ขึ้นมาให้ใส่ comment ก็ใส่ไปครับ แต่อย่าใส่ข้างล่างบรรทัดที่เขียนว่า --This line, and those below, will be ignored-- ให้ใส่ข้างบน (อย่าถามว่าทำไปนะครับ.. ไม่รุ็อะ)

    Enter any comment you want at the top of the file, then save and exit.เสร็จแล้ว save แล้วปิดไปเลย ไม่ต้อง Save As นะครับ จะทับยังไงก็ช่างมันดีกว่ามั้ง
  4. You'll now be prompted for credentials. In my case I was prompted for the administrator credentials as well: อะฮ้า มีให้ใส่ password ของเครื่องที่เราใช้ด้วยครับ เอ..จะใส่ดีมั้ยนะ แต่ก็ใส่ๆไป และมีถามต้่อเรื่อง User กับ Password ใช้ใช้อันที่เราตั้งใน passwd.conf นะครับ

    Authentication realm:  0f1a8b11-d50b-344d-9dc7-0d9ba12e22df
    Password for 'Administrator': *********
    Authentication realm: 0f1a8b11-d50b-344d-9dc7-0d9ba12e22df
    Username: sally
    Password for 'sally': ************

    Committed revision 1.

    Congratulations! You just checked a change into Subversion!


5. สร้างเป็น Service จริงๆอันนี้เราทตามเค้าไม่ได้เพราะ SVNService.exe เราไม่มี งงไปนานแต่ดูดีๆมันถูกเป็นเป็นคำสั่งนี้ไปแล้วครับ
svnserve.exe" --service -r "D:\svn_repository" --listen-port "3690"

สิ่งที่ผมทำคือเข้าไปใน Service ใน Administative Tools > Service
แล้วสั่ง Start มันเองเลย.. อะนะ
ดังนั้นเราไม่ต้องทำตามเค้า แต่เราทำการทดสอบตามเค้าได้ครับด้วยคำสั่ง
svn ls svn://localhost/

เอาของเค้ามาให้ดูด้วย

E) Start the server as a service

  1. Stop the existing command window that's running svnserve by pressing CTRL+C.
  2. Copy the file SVNService.exe from the zip file of the same name to the subversion\bin folder.
  3. Install the service by issuing the following commands:
    svnservice -install --daemon --root "C:\Documents and Settings\Subversion Repository"
    sc config svnservice start= auto
    net start svnservice
  4. Test the new service by listing all the files in the repository:
    svn ls svn://localhost/

    You should see the single project we created earlier, myproject/


เสร็จแล้วก็น่าจะทำตามตัวอย่างเค้าได้เลย (พอดียังไม่ได้ลอง มาเขียน Blog ก่อน)
ตามนี้ครับ

F) Set up the shell extension

  1. Run the TortoiseSVN installer. It will tell you to restart, but you don't need to.
  2. Create a project folder somewhere on your hard drive. Right click in that folder and select "SVN Checkout..."



    type svn://localhost/myproject/ for the repository URL and click OK.


  3. Create a new file in that directory. Right click the file and select "TortoiseSVN, Add"


  4. The file hasn't actually been checked in yet. Subversion batches any changes and commits them as one atomic operation. To send all your changes to the server, right click and select "SVN Commit":



And we're done! You now have a networked Subversion server and client set up on your machine. Note that the default port for svnserve is 3690.

For more tips on using subversion, take a look at the free O'Reilly Subversion book.


posted on Monday, January 16, 2006 4:15 PM by jatwood

จบแล้วครับ
การ Setup แบบ Newbie จริงๆ ได้ผลยังไงจะเขียนเพิ่มครับ
หรือใครจะติชมก็ยินดีมากๆครับ


REFERENCES
ขอเพิ่มเติม Link น่าอ่านสำหรับ Newbie อีครับ ตามนี้

http://www.narisa.com/forums/index.php?showtopic=18875
[รบกวนเรื่องการใช้งานและลง SVN version server ด้วยครับ, ผมคิดว่าเพื่อนๆหลายคนก็คงจะศึกษาเรื่องนี้กันอยู่]

http://www.narisa.com/forums/index.php?showtopic=16023
[TortoiseSVN หรือ SVN ตัวอื่น ๆ มีใครเคยใช้บ้างค่ะ]

http://blogs.vertigosoftware.com/teamsystem/archive/2006/01/16/Setting_up_a_Subversion_Server_under_Windows.aspx
[อันนี้เป็น Link นอกที่อ่านรู้เรื่องสุดแล้วมั้งครับ]

สู้ๆครับ :-)

Sunday, October 05, 2008

เริ่มกลับมาเขียน pocket pc ด้ว Native ก็เลยต้องย้อนอดีตกันหน่อย

ด้วยความที่ Requirement บังคับต้องเป็น Native เ่ท่านั้น..

ถ้าเป็นเพลาอื่นคงปฏิเสธไปเพราะเรียนรู่ .Net มาจะแย่ยังจะให้กลับไปทำ Native อีก

แต่เวลานี้คงช่วยไม่ได้ เออ เอากะมึงไอ้เต้ จะเอาก็ต้องเอา มาลองระลึกความหลังกันดู

แต่เริ่มเลยนะ รู้จัก ATL, MFC และ Win32 มากแค่ไหน (สำหรับศิษย์รัก Sun ขาประจำ Java อย่างผมคงร้องอี๋ เพราะไม่เคยจะสนใจ) ก็มาลองอ่านดู เอามาจากนี่ http://www2.cs.science.cmu.ac.th/useminar/2544/pocketgame/technique.htm

เอามาเก็บอย่างนี้เพราะกลัววันนึง source จะหายไป ไม่ตั้งใจทำซ้ำเผยแพร่แต่อย่างใด หวังว่าไม่ผิดนะครับ

สิ่งที่ควรรู้ก่อนเริ่มพัฒนาโปรแกรมบน Pocket PC

1. Windows CE

Windows CE เป็นระบบปฏิบัติการที่จัดการการโต้ตอบกันระหว่างซอฟแวร์การประยุกต์ใช้งาน ฮาร์ดแวร์ การที่เป็นผู้ใช้งานนั้นไม่มีความจำเป็นต้องรู้ว่าระบบปฏิบัติการทำงานอย่างไร แต่อาจเป็นประโยชน์ในการที่รู้ถึงผลกระทบต่อผู้ใช้ดังนี้ Windows CE

  • เป็นส่วนหนึ่งของ Win32 API ทำให้ง่ายสำหรับนักพัฒนาซอฟแวร์ที่จะเขียนโปรแกรมโดยใช้เครื่องมือที่คุ้นเคย จึงทำให้กระบวนการการพัฒนาซอฟแวร์รวดเร็วขึ้น
  • เป็น Portable และสามารถใช้งานบนตัวประมวลผลแตกต่างกันได้หลากหลาย ซึ่งก็หมายถึงว่าสามารถที่จะเลือกใช้ตัวประมวลผลจากผู้ผลิตได้หลากหลาย ให้ใช้เทคโนโลยีล่าสุดที่ราคาต่ำ
  • เป็นระบบปฏิบัติการแบบ Real Time จึงทำให้ระบบปฏิบัติการทำงานเร็วขึ้น
  • Modular Design หมายถึงว่าสามารถใช้ กับอุปกรณ์ได้กว้างขวางเช่นใช้กับตัวอุปกรณ์ปลายทาง , ใช้กับเครื่องเล่นเกมส์ ปัมม์น้ำเป็นต้น

2. GDI (Graphics Device Interface)

คือส่วนการควบคุมการแสดงข้อความและกราฟฟิก GDI จัดหาหลาย ๆ function และ โครงสร้างเพื่อนำ กราฟฟิกมาแสดงในอุปกรณ์ต่าง ๆ เช่น จอภาพ, ปริ้นเตอร์ และใน devices อื่น ๆ

หน้าที่ของ GDI สามารถวาดเส้นตรง line,curves ,closed figures , ข้อความ และ bitmapped image นอกจากนี้ยังสามารถใส่สีให้กับสิ่งที่เราวาดหรือสิ่งที่เราสร้างขึ้น

GDI มี 3 อุปกรณ์ในการวาดรูปที่สามารถสร้างกราฟฟิกดังนี้

    • ปากกาเพื่อวาด line & curves
    • Brushes เพื่อเพิ่มภายในของรูปร่างปิด
    • Fonts เพื่อเขียนข้อความ

Graphical user interface (GUI)

GUI เป็นวิธีการใช้งานของผู้ใช้คอมพิวเตอร์ที่เลือกแฟ้ม โปรแกรม หรือคำสั่ง โดยชี้ไปยังรูปภาพแทนสิ่งเหล่านั้นบนจอภาพแทนการป้อนคำสั่งยาวๆ ยุ่งยากที่เครื่องหมายรับคำสั่ง

โปรแกรมระบบงานที่ทำงานในวินโดวส์นั้นใช้ชุดของเมนูแบบดึงลง กรอบสนทนาและกราฟิกแบบอื่นๆ เช่น แถบเลื่อนและไอคอน เป็นต้น วิธีการโต้ตอบที่ตรงกันหมดนี้ทำให้ผู้ใช้ได้ประโยชน์ เพราะเมื่อเรียนรู้การใช้งานจากโปรแกรมหนึ่งก็นำไปใช้ได้กับทุกโปรแกรมที่ทำงนอยู่ในภาวะแบบเดียวกันนี้

การใช้งานแบบกราฟิกนี้มีขึ้นที่ศูนย์ วิจัย Palo Alto ของบริษัท XeRox (PARC) ในช่วงยุค 70 แต่โชคไม่ดี ในขณะนั้นฮาร์ดแวร์ที่ต้องการให้ใช้งานแบบนี้พัฒนาด้วยเทคนิคที่สูงและทำให้ ราคาแพงเกินกว่าที่ผู้ใช้ส่วนมากจะมีใช้ได้ ในปี 1979, Steve Jobs แห่งบริษัทแอปเปิลคอมพิวเตอร์ได้มาเยี่ยม PARC และได้เห็นความสำคัญในการทำงานของผู้ใช้จึงได้นำไปพัฒนาขึ้นใช้กับ คอมพิวเตอร์รุ่นแอปเปิลลิซาซึ่งไม่ประสบความสำเร็จและในที่สุดไปใช้กับ คอมพิวเตอร์ชุดแมคอินทอช จากนั้นมาวิธีการใช้งานแบบกราฟิกนี้ก็ได้ผสานเข้ากับการทำงานของคอมพิวเตอร์ จากพีซีไปจนถึงระบบยูนิกซ์อันใหญ่โต, แมคอินทอชซิสเต็ม 7, ไมโครซอฟต์วินโดวส์, วินโดวส์ 95, วินโดวส์เอ็นที และโอเอส/ทู ทั้งหมดนี้ใช้ GUI พร้อมกับเมาส์ แทร็กบอลหรืออุปกรณ์ที่ใช้ชี้ตำแหน่งแบบอื่นๆ

kernel

เป็นรากฐานที่สำคัญที่สุดของระบบปฏิบัติการเคอร์เนลจะฝังอยู่ในหน่วยความจำตลอดเวลา ผู้ใช้จะไม่สามารถมองเห็น ทำหน้าที่จัดการหน่วยความจำในระบบ ระบบแฟ้ม และการทำงานกับดิสก์

จากตัวอย่างจะเห็นได้ว่า การคำนวณส่วนต่างๆทำได้เร็ว แต่การคำนวณ sky ทำได้ช้ามาก และการคำนวณโดยรวมนั้นถือว่าอยู่ในระดับปานกลาง

3. GX (Game API)

ใช้สำหรับติดต่อกับ device (อุปกรณ์ input / output ต่างๆ) ข้อเสียคือไม่สามารถเข้าถึงข้อมูลได้โดยตรง

จากตัวอย่างจะเห็นได้ว่า การคำนวณส่วนต่างๆทำได้เร็ว แต่การคำนวณโดยรวมนั้นถือว่าอยู่ในระดับช้ามากๆ

4. DSA (direct Screen Access)

ลักษณะการทำงานจะทำการดึงข้อมูลต่างๆที่เกี่ยวกับหน้าจอ เช่น scan line (เส้นแต่ละเส้นบนหน้าจอ)จาก VRAM และสามารถเข้าถึงข้อมูลเหล่านั้นได้โดยตรง ข้อดีคือ สามารถทำงานได้รวดเร็วขึ้น

จากตัวอย่างจะเห็นได้ว่า การคำนวณส่วนต่างๆทำได้ช้า แต่การคำนวณโดยรวมนั้นถือว่าอยู่ในระดับที่เร็วมาก

การเลือกใช้ทั้ง 3 ตัวนี้ขึ้นอยู่กับลักษณะของ CPU ว่าจะเหมาะดัวไหน

ตารางแสดงการเปรียบเทียบการใช้ Visual Basic กับ Visual C++ ในการพัฒนาโปรแกรมบน PocketPC

Feature

Visual C++

Visual Basic

ต้องการโปรแกรม run time ติดตั้งใน PocketPC ด้วย ต้องการถ้าคุณใช้ ATL (Active Template Library) หรือ MFC(Microsoft Foundation Classes) ต้องการเสมอ
ทดสอบผลโปรแกรมด้วย Emulator ได้ ได้
ทดสอบโปรแกรมบน H/PCs ได้ ได้
ทดสอบโปรแกรมบน Palm-size PC ได้ ไม่ได้ในอุปกรณ์ที่เป็น เวอร์ชั่น 1.0
ทดสอบโปรแกรมบน Pocket PC ได้ ได้
โปรแกรมที่ได้ไม่ผูกกับตัวประมาลผล (Processor) ไม่ใช่ (ยกเว้นถ้าใช้ CEF - Common Executable Format) ใช่
Debugging support บน desktop emulation ใช่ ใช่
Debugging support บนอุปกรณ์ Windows? CE ใช่ ใช่ (เฉพาะ H/PCs) และ Pocket PC
Development of COM components (COM server or ActiveX? Controls) ได้ ไม่ได้
Hosting ActiveX controls ได้ (แต่ยากในการพัฒนา) ได้ (แต่ยากในการพัฒนา)
การพัฒนา drivers ได้ ไม่ได้
การพัฒนา ActiveSync? Filter ได้ ไม่ได้
ความสามารถในการพัฒนาโปรแกรมได้อย่างรวดเร็ว ไม่ได้ ได้
ความอิสระในการพัฒนาโปรแกรม มาก จำกัด
สนับสนุน embedded devices ใช่ สนับสนุนตั้งแต่ Windows CE 2.11
สนับสนุน remote services ใช่ ใช่ (ใช้ Winsock control)
สนับสนุน Pocket PC enhancements ใช่ ใช่
สามารถใช้l Pocket PC API อย่างเต็มที่ ใช่ ไม่ (เฉพาะ ActiveX controls ที่เขียนด้วย C++)
ความง่ายในการเข้าถึงข้อมูลด้วย ADOCE (Active Data Objects for Windows CE ไม่ (สามารถทำได้แต่ยากในการพัฒนา) ง่าย

วิธีลบ loopback ออกจากเครื่องครับ

Uninstallling / Remove Microsoft Loopback Adapter in Windows XP

by alamster in June 7th, 2007

ref: http://www.rasyid.net/2007/06/07/uninstallling-remove-microsoft-loopback-adapter-in-windows-xp/

I got used network card for my old computer, it’s enough to do more experiment with ‘real network adapter’ thats way I need to uninstall/remove my loopback adapter. My frist thought about removing microsoft loopback adapter is from control panel till I realize it’s behaves like real network adapter. To remove it off course via hardware menu.

Here’s step by step removing process Microsoft loopback adapter in my windows xp :

1. Open My Computer

 Uninstallling / Remove Microsoft Loopback Adapter in Windows XP

2. Right Click on My Computer, followed by click Properties

 Uninstallling / Remove Microsoft Loopback Adapter in Windows XP

3. By default General Tab displayed

 Uninstallling / Remove Microsoft Loopback Adapter in Windows XP

4. Click on Hardware Tab -> Device Manager

 Uninstallling / Remove Microsoft Loopback Adapter in Windows XP

5. Click + near Network Adapters

 Uninstallling / Remove Microsoft Loopback Adapter in Windows XP

6. Click On Microsoft Loopback Adapter, followed by click delete button

 Uninstallling / Remove Microsoft Loopback Adapter in Windows XP

7. Confirmation pop up, choose OK

 Uninstallling / Remove Microsoft Loopback Adapter in Windows XP

Done, uninstall process successfully accomplished :-)