Hack RC เพื่อเพิ่ม Level

ลองดูการ Hack Restaurant City เพื่อเพิ่ม level กันบ้างครับ ตอนนี้สูงสุดได้ถึง level 32

Hack RC For RC Tool 5.2

ออกมาใหม่แล้วครับสำหรับ Restaurant City Tool version 5.2 เพื่อแก้ไขฟังก์ชั่นเช่น เพิ่มพลังพนักงาน

Hack RC For RC Tool 5.1

ลอง Hack Restaurant City ใน Facebook ดูครับ เพื่ออะไรนะหรอ ก็เช่นเพิ่ม level พนักงานไม่เหนื่อย (พนังงานเพิ่มขึ้นแทนที่จะลดลง) พนักงานเสิร์ฟได้เร็ว

วันศุกร์ที่ 23 ตุลาคม พ.ศ. 2552

naraphol.blogspot.com moved to naraphol.com

เขียนโดย นรพล Naraphol (ยอด Yod) ที่ 09:19 0 ความคิดเห็น
ข้อมูลทั้งหมดถูกย้ายไปไว้ที่ naraphol.com ทั้้งหมดแล้วนะครับ

All posts have been moved to naraphol.com

naraphol

วันศุกร์ที่ 9 ตุลาคม พ.ศ. 2552

เริ่มต้นเขียนโปรแกรมบน iPhone

เขียนโดย นรพล Naraphol (ยอด Yod) ที่ 18:00 1 ความคิดเห็น
ลองมาเขียนโปรแกรมบน iPhone ดูบ้างครับ สำหรับใครที่สนใจก็ลองติดตามกันเรื่อยๆนะครับ ผมจะเริ่มตั้งแต่ต้นเลยแล้วกัน ท่านใดมีข้อเสนอ หรือติชม จะยินดีมากเลยนะครับ

เตรียมเครื่องมือกันก่อน
  1. เครื่อง Mac ไม่่ว่าจะเป็น MacBook MacAir iMac หรืิิอ ​​​Macเท่ ได้หมดครับ (บางคนเริ่มงงกับ Macเท่ ดูได้ที่ การติดตั้ง Mac OSX ลงบน Windows ด้วย VMware) โดยต้องใช้ OS X 10.5.3 ขึ้นไป
  2. โปรแกรม iPhone Software Development Kit (SDK) โหลดกันแบบฟรีๆเลยครับ ตอนนี้ก็เป็นเวอร์ชั่น 3.1
  3. และแน่นอน.....เครื่อง iPhone ครับ ฮิ ฮิ
ความรู้พื้นฐาน
อันนี้ขึ้นอยู่กับว่าคุุณต้องการเขียนโปรแกรมบน iPhone แบบไหน โดยแบ่งได้เป็นสองแบบคือ
  1. Dashcode เป็นการเขียนโปรแกรมในรูปแบบ html เพื่อไปใช้ใน Safari โดยคุณควรมีพื้นฐานเกี่ยวกับ html และ script
  2. Xcode เป็นการเขียนโปรแกรมที่เราโหลดผ่าน iTune นั่นแหล่ะครับ โดยแบบนี้จะยากสักหน่อย คุณควรมีความรู้พืนฐานเกี่ยวกับ Objective-C
นอกจากนั้นยังมีข้อจำกัดหลายๆอย่างบน iPhone อีกครับที่ควรจะทราบเช่น
  1. ทำงานได้ครั้งละโปรแกรม ไม่เหมือนพวก window mobile ที่สามารถเปิดได้หลายๆโปรแกรมพร้อมๆกัน
  2. การเข้าถึงข้อมูลใน iPhone ทำได้เฉพาะส่วนหนึ่งของ file system เท่านั้น (ที่เรียกว่า sandbox) ไม่เหมือนกับโปรแกรมในคอมพิวเตอร์ที่เราจะไปเขียนไฟล์ตรงไหนของฮารด์ดิสก็ได้
  3. การตอบสนองต้องรวดเร็ว คือกดเปิดโปรแกรม ก็ต้องโหลดเร็ว แสดงผลเร็ว (ตามแบบฉบับของ ​iPhone) แล้วพอผู้ใช้กดปุ่ม Home โปรแกรมจะถูกบังคับให้ปิด ทีนี้เราก็ต้องจัดการ save ข้อมูลให้เสร็จภายในประมาณ 5 วินาที ไม่งั้นโปรแกรมเราจะถูกปิดโดยไม่ได้ save ไว้
  4. ขนาดหน้าจอถูกจำกัดอยู่ที่ 480X320 pixel
  5. ขนาดหน่วยความจำที่โปรแกรมใช้ได้อยู่ที่ประมาณครึ่งหนึ่งของเมมที่มีในเครื่อง
เริ่มต้นเขียน Hello World กันดีกว่า (Xcode)
เริ่มสร้าง Project ด้วย Xcode

หลังจากติดโหลดและติดตั้ง iPhone SDK กันแล้ว ก็เปิดมันขึ้นมาเลยครับ โดยไปที่ /Developer/Applications/Xcode แล้วจะเห็นหน้าจอนี้ครับ จากนั้นกด create new project

ต่อมาก็เลือก View-Based Applicaiton และตั้งชื่อ Project ว่า HelloWorld



ทำความรู้จักกับ Xcode สักหน่อยก่อน
หน้าจอ Xcode ประกอบด้วย 3 ส่วนสำคัญคือ
  1. Group & File Panel (ด้านซ้าย) แสดง resource ทั้งหมด (โฟลเดอร์ที่อยู่ในนี้อาจมี path ไม่ตรงกับโฟลเดอร์ หรือไฟล์ที่เก็บของมูลจริงในเครื่อง เนื่องจาก Xcode มีการจัดเอาไฟล์มาไว้ใน project ด้วยกันเพื่อให้ทำงานได้ง่าย)
    •  Classes เป็นที่เก็บ code ที่เขียนด้วย Objective-c ทั้งหมด โดยที่เราสามารถสร้างโฟลเดอร์ย่อยเพื่อเก็บ code ได้
    • Other Sources เป็นที่เก็บ code ที่ไม่ได้เขียนด้วย Objective-c โดยโปรแกรมที่เขียนสำหรับ iPhone จะประกอบไปด้วย
      • Hello World_Prefix.pch (pch = precompiled header) ใช้สำหรับเก็บ header file ที่ถูกนำมาใช้ใน project นี้ โดย Xcode จะทำการ complie ไฟล์เหล่านี้ไว้ก่อนเพื่อลดเวลาในการ complile project เมื่อเราใช้คำสั่ง build หรือ build and go
      • main.m เป็นที่เก็บ main() ซึ่งโดยปกติเราไม่จำเป็นต้องเปลี่ยนแปลง
    • Resource เป็นที่เก็บไฟล์ที่ไม่ใช่ code เช่นรูปภาพ และวีดีโอ ที่เราต้องการใช้ใน project ทัั้งหมด นอกจากนั้นยังมีโฟลเดอร์ย่อยไปอีกคือ
      • Hello_WorldViewController.xib เก็บข้อมูลสำหรับ Interface Builder
      • Info.plist เก็บข้อมูลรายละเอียดของ Application ที่เราสร้างขึ้น
      • MainWindow.xip เป็นส่วนที่เก็บ main ของ Interface Builder (nib)
    • Frameworks เป็นที่เก็บ library (code, image, sound) ที่เราสามารเรียกใช้จากโปรแกรมเราได้  
    • Product เก็บ Application ที่ได้หลังจากเราได้ compile project ของเรา โดยถ้าเราลองดูตอนนี้จะเห็นว่ามี ไฟล์ชื่อ Hello World.app ซึ่งก็คือ application ของเรานั่นเอง (ตอนนี้ยังเป็นสีแดง เนื่องจากเรายังไมไ่ด้สั่ง complile --- ไฟล์ที่เป็นสีแดงใน Xcode คือไฟล์ที่ไม่พบใน disk)
  2. Detail View (ขวาบน) แสดงรายละเอียดของ resource ที่ถูกเลือก
  3. Editor (ขวาล่าง) แสดงข้อมูลของ resource ที่ถูกเลือก เพื่อแก้ไข (ตรงนี้แหล่ะครับที่เราจะต้องมาเขียน code กัน)
ทำความรู้จักกับ Interface builder (IB)
เอาไว้ออกแบบหน้าจอครับ ลองเปิดไฟล์ Hello_WorldViewController.xip จะได้หน้าตาแบบนี้

มาดูส่วนประกอบกันบ้างครับ
  1. หน้าต่างด้านซ้ายสุดเป็น nib ไฟล์ของ main window ซึ่งก็คือ Hello_WorldViewContrller.xib โดยในแต่ละ nib file ประกอบไปด้วย 2 icon คือ
    • File's Owner เป็น object ของ nib file ที่ถูกสร้างขึ้นเมื่อเรียกใช้
    • First Responder เป็น object ที่ user กำลังใช้งานอยู่ เช่นถ้า user กำลังกรอกข้อมูล text field ก็คือ first responder และเมื่อ user เลือกไปที่ส่วนอื่นของหน้าจอ first responder ก็จะเปลี่ยนตามไปด้วย โดยจะเห็นได้ว่าเราสามารถรู้ได้ทันทีว่า user กำลังทำอะไรที่หน้าจออยู่ก็ด้วยการดูที่ first responder
    • ไฟล์อื่นๆ จะเป็น object instant ที่ถูกสร้างเมื่อ nib file ถูกโหลดขึ้นมา ดังจะเห็นได้จาก icon ที่ชื่อ view  ซึ่งเป็น instant ของ UIView class (พื้นที่หน้าจอที่แสดงให้ user ใช้งาน) 
  2. หน้าต่างตรงกลางคือส่วนที่ไว้ออกแบบหน้าจอ เราสามารถเปิดหน้าต่างนี้ขึ้นมาได้โดยการกด icon view จากหน้าต่างซ้าย
  3. หน้าต่างซ้ายคือ library เป็นทีึ่เก็บ Cocoa Touch object ทั้งหลาย ที่เราสามารถลากเข้ามาเป็นส่วนหนึ่งในหน้าจอ view ได้
เริ่มเขียน Hello World สักที
เตรียมตัวกันพอประมาณแล้ว คราวนี้ได้เวลาเขียนโปรแกรมเล้วครับ
  1. ลองหา label จากหน้าต่าง library พอเจอแล้วก็ลากมาไว้ในหน้าต่าง view
  2. แก้ label ให้เป็นว่า Hello World!!!
  3. save file คับโดยกด File > Save
  4. compile และสั่งให้โปรแกรมทำงาน โดยกลับไปที่ Xcode แล้วกด Build > Build and Run
  5. Xcode จะเปิด iPhone simulator ขึ้นมา ก็จะเห็น Hello World!!!
  6. เสร็จแล้ว ???? คับ เสร็จแล้วคับ ยังไม่ได้เขียน code อะไรเลยคับ แต่เสร็จแล้วจิงๆ ;-)
ปรับแต่ง Hello World นิดหน่อย
ลองปรับสีสรรให้สวยอีกนิดดีกว่าครับ
  1. เปิด Inspector ขึ้นมาจากเมนู Tool
  2. แล้วเลือกที่ HelloWorld ที่เราพิมพ์ลงไปในหน้าต่าง view จะเห็นว่า Inspector จะแสดงคุณสมบัติของ label จากนั้นก็ลองปรับสีหรืออื่นๆ ให้สวยงานเลยครับ
  3. Save และ Build and Run เพื่อดูผลงานได้เลยครับ
เปลี่ยนรูป icon ให้กับโปรแกรมที่สร้างขึ้น
ลองกดปุ่ม home ที่หน้าจอ iPhone simulator ดูครับ เราจะเห็น icon โปรแกรมเราเป็นสีขวา พร้อมคำว่า HelloWorld อยู่ด้านล่าง

ทีนี้เราลองมาเปลี่ยน icon เป็นรูปอื่นดูบ้าง
  1. เตรียมรูปขนาด 57X57 pixel แบบ PNG (เป็นสีเหลียมได้เลยคับ ไม่ต้องโค้ง ไม่ต้องมีแอฟเฟ็คอะไร เดี๋ยว iPhone จัดให้ครับ)
  2. ไปที่ Xcode แล้วเลือกโฟลเดอร์ Resource จากนั้นไปที่เมนู Add to Project > เลือกรูปทีเตรียมไว้
  3. จะมีหน้าจอขึ้นมาถามว่าเราต้องการ copy รูปไปยัง project หรือไม่ ตอบตกลงโดยการติ๊กที่คำว่า Copy items into desetination.... แล้วกดปุ่ม Add
  4. เปิดไฟล์  Info.plist จากโฟลเดอร์ Resource จากนั้นแก้ double click ในช่อง icon file ที่ว่างอยู่ แล้วพิมพ์ชื่อไฟล์ icon ลงไป
  5. save แล้ว build and run กันเลย จะได้ icon ตามแบบเราแล้ว
  6. ถ้าลองดูที่ไฟล์ Info.plist จะเห็นว่ามีขัอมูลอีกหลายอย่างที่เราสามารถกำหนดได้ให้กับ Project เช่น Bundle indentifier ที่เปรียบเหมือน id ของ project ที่จะไม่ซ้ำกัน

วันจันทร์ที่ 28 กันยายน พ.ศ. 2552

การซ้อนของใน Restaurant City

เขียนโดย นรพล Naraphol (ยอด Yod) ที่ 18:57 0 ความคิดเห็น
พอดีมีคนถามว่าครับว่าจะซ้อนของได้อย่างไรใน Restaurant City ....

ขอแบ่ง 3 กรณีนะครับ

กรณีที่1 ซ้อนของต่างชนิดกัน หรือของที่ซ้อนกันได้อยู่แล้ว เช่นวางแจกันบนโต๊ะ
วิธีทำ สามารถทำได้เลยครับโดยลากแจกันไว้บนโต๊ะได้เลย


กรณีที่2 ซ้อนของชนิดเดียวกัน หรือของที่วางซ้อนกันไมได้ เช่นวางลำโพงบนลำโพง
วิธีทำ อันนี้ต้องมีเทดนิคหน่อยครับตามนี้เลย

ตัวอย่างต้องการวางลำโพงบนลำโพง ต้องมี ลำโพง 2 ตัว และโต๊ะ 1 ตัว

  1. ลากลำโพงตัวที่ 1 วางไว้บนโต๊ะ

  2. ลากลำโพงตัวที่ 2 วางไว้บนโต๊ะ จะลากยากหน่อยนะครับ ลองขยับๆให้มันพอดี ลำโพงตัวที่ 2 จะทับตัวที่ 1 ไปเลย จนเหมือนว่ามีลำโพงตัวเดียว

  3. ลากโต๊ะออกไปเลยครับ และกดเดรื่องหมายถูก

  4. เสร็จแล้วครับลำโพง ซ้อนกันแล้ว ;-)

กรณีที่3 ของบางอย่างไม่สามารถซ้อนกันได้ครับ เช่นโต๊ะวางบนตู้เกมไม่ได้

วันพฤหัสบดีที่ 24 กันยายน พ.ศ. 2552

การจัด Rating ใน Restaurant City

เขียนโดย นรพล Naraphol (ยอด Yod) ที่ 19:48 0 ความคิดเห็น
คิดว่าหลายๆคนคงจะเคยสังเกตว่าใน Restaurant City เราสามารถเข้าไปที่ Gourmet Street และจะเห็นร้านอยู่ในนั้ อาจเกิดความสงสัยว่ามันคืออะไรกัน และเราจะเข้าไปอยู่ใน Gourmet Street ได้อย่างไร


Gourmet Street คืออะไร
ร้านค้าที่มี Rating มากกว่า 4 ขึ้นไป จะถูกจัดลำดับอยู่ใน Gourmet Street ที่ไม่ว่าใครก็สามารถเข้ามาเยี่ยมชมร้านที่ได้
...ผมขอเรียกร้านเหล่านี้ว่าร้านเชลล์ชวนชิมใน Restaurant City แล้วกัน....

ทำอย่างไรถ้าอยากไปอยู่ใน Gourmet Street
ตกแต่งร้านให้สวยหรือแปลกตาครับ แล้วก็ลุ้นให้คนมา vote ให้ร้านเรา

ขั้นตอนการเปิดให้ร้านเรารับ vote
  1. ไปที่ Street view และกด Radom street



  2. คลิกเลือกให้เปิดการ vote


  3. เมื่อมีคนเข้าร้านเรา ก็จะสามารถ vote ให้เราได้




ลองดูกันนะครับ ขอให้สนุกกับ Restaurant City อย่าเล่นเพลิดจนลืมทำงานละ ;-)
http://www.facebook.com/naraphol


วันพุธที่ 16 กันยายน พ.ศ. 2552

เริ่มเขียนโปรแกรมด้วย Objective-C

เขียนโดย นรพล Naraphol (ยอด Yod) ที่ 16:24 0 ความคิดเห็น
ทำความรู้จักกับ Objective-C กันก่อน
Objective-C เป็นภาษาที่ได้รับความนิยมในการเขียนโปรแกรมบน Mac OS X มีที่รูปแบบคำสั่งการเขียนโปรแกรมจะคล้ายกับภาษา C เนื่องจาก Objective-C เป็น superset ของ ภาษา  C ดังนั้นสำหรับคนที่คุ้นเคยกับภาษา C จะสามารถเข้าใจ Objective-C  อย่างไม่ยากนัก

Objective-C ใช้เพื่อเขียนโปรแกรมประเภทไหน
โปรแกรมที่เป็นแบบ Mac OS X อย่างแท้จริงเกือบทั้งหมดถูกเขียนด้วย Objective-C ทั้่งนี้รวมทั้่งโปรแกรมที่ทำงานบน iPhone ก็เช่นกัน

เริ่มเขียนโปรแกรม HelloWorld กันเลยดีกว่า
ลองโปรแกรมง่ายๆกันก่อนครับ ตามสูตรสำเร็จคือ HelloWorld
  1. ติดตั้ง Mac SDK โดยโหลดจากได้ Mac Dev Center (ใครที่ใช้ Windows แต่อยากเล่น Mac ลองอ่านวิธีการติดตั้ง Mac OS X บน Windows )
  2. เปิดโปรแกรม Xcode จาก /Developer/Applications
  3. สร้าง Project ใหม่จาก File > NewProject
  4. เลือก template เป็น Mac OS X > Command Line Utiltiy > Foundation Tool 
  5. เปิดไฟล์ Hello Objective-C.m แล้วแก้ไข code ตามนี้ 
  6. #import < Foundation/Foundation.h > int main (int argc, const char * argv[]) { NSLog(@"Hello, World!"); return 0; }
  7. บันทึกไฟล์ โดยเลือก File > Save
  8. Complile และ run ไฟล์ โดยเลือก Build > Build and Go
  9. ดููผลที่ได้จากการ run โดยเปิด console จาก Run > Console
  10. ใน Console จะแสดงคำว่า Hello World เป็นอันเสร็จครับ ;-) 
มาดู HelloWorld กันอีกครั้ง
file extension
Xcode สามารถ compile ไฟล์ประเภทต่างๆดังนี้
  • .m ไฟล์ประเภท Objective-C และใช้ Objective-C compiler
  • .c ไฟล์ประเภท C และใช้  C compiler
  • .cpp ไฟล์ประเภท C++ และใช้  C++ compiler
โดย Xcode ใช้ GUN Complier Collection เพียงตัวเดียวที่รวมเอาทั้ง 3 compiler เข้าด้วยกัน

#import
เป็นส่วนที่เอาไว้ประกาศ header file เพื่อนำเอา framework อื่นมาเรียกใช้ เช่น library, image, sound โดคำสั่ง import ทำหน้าที่เช่นเดียวกับคำสั่ง include ในภาษา C

NSLog
คำสั่ง NSLog ทำหน้าที่เช่นเดียวกับคำสั่ง printf ในภาษา C คื่อการพิมพ์ข้อความออกจอภาพ ฟังก์ชั่นนี้นำมาจาก toolkit ตัวหนึ่งที่เรียกว่า Cocoa สังเกตได้จากการใช้ prefix "NS" (ย่อมาจาก NextSTEP ซึ่งเป็นชื่อเดิมของบริษัทที่ทำ toolkit นี้ ก่อนที่ apple จะเข้ามา)
เมื่อลองมาดูในคำสั่ง NSLog จะพบว่ามีการใช้ @ ฟังก์ชั่น ซึ่งเมื่อรวมกับข้อความในเครื่องหมายคำพูด จะได้เป็น NSString ฟังก์ชั่นสำหรับจัดการข้อความในรูปแบบ String เช่นบอกขนาด เปรียบเทียบ แปลงเป็นinteger

return
การกำหนดค่า 0 แปลว่าโปรแกรมเสร็จสมบรูณ์ เช่นเดียวกับที่ใช้ในภาษา C

วันอาทิตย์ที่ 13 กันยายน พ.ศ. 2552

การติดตั้ง Mac OSX ลงบน Windows ด้วย VMware

เขียนโดย นรพล Naraphol (ยอด Yod) ที่ 16:56 0 ความคิดเห็น
ถ้าในเครื่องที่เราใช้อยู่ติดตั้ง Windows (XP,Vista,7) อยู่แล้วอยากจะลง Mac OSX ด้วยจะทำอย่างไรดี?
เท่าที่เคยลองก็มีสองวิธีคือ
วิธีที่ 1 แบ่ง Harddisk เป็น 2 Partition โดย Partition แรกลง Windows ก่อน และอีก Partition ก็ลง Mac จากนั้นตอนบูธเครื่องก็สามารถเลือกได้ว่าจะใช้ OS ตัวไหน
ข้อดี
  •  ทำงานได้รวดเร็ว ไม่ต้องแบ่งทรัพยากรกันระหว่าง OS เพราะต้องเลือกบูธได้ OS เดียว
ข้อเสีย
  • ต้องทำการ  Partition Harddisk ใหม่เพื่อติดตั้งในแต่ละ OS
  • หลังติดตั้งแล้ว ถ้าจะเปลี่ยนกลับมาใช้เพียง OS เดียวจะมีขั้นตอนยุ่งยาก
วิธีที่ 2 ติดตั้งโปรแกรม VMware ให้จำลอง Harddisk เราเป็นเครื่องคอมอีกตัวหนึ่ง และลง Mac
ข้อดี
  • ติดตั้งรวดเร็ว ไม่ต้อง Partition Harddisk ใหม่ และติดตั้งได้หลาย OS
  • หลังติดตั้งแล้ว ถ้าไม่ต้องการสามารถลบออกได้สะดวก
ข้อเสีย
  • ทำงานช้า เนื่องจากต้องแบ่งทรัพยากรระหว่าง OS
ขอรวมเอาวิธีการติดตั้งจากหลายๆเวป ที่ได้ลองแล้วใช้ได้เกี่ยวกับวิธีที่ 2 นะครับ (ใครอยากศึกษาวิธีที่ 1 ดูได้ที่นี้ ครับ)
โปรแกรมที่จำเป็น
  1. VMware Workstation ตอนนี้ก็ Version 6.5.3 ไม่ฟรีครับแต่ทดลองใช้ได้ 30 วัน
  2. Mac OSX ที่เป็นไฟล์ประเภท ISO แบบที่ใช้ได้กับเครื่อง Intel / AMD เท่าที่เคยลองก็มี Kalyway 10.5.2 iDeneb v.1.5.1 และ iATKOS v.7
การติดตั้ง VMware
ทำตามขั้นตอนใน Tung Blog (อังกฤษ)
ข้อแนะนำ
  • การติดตั้งควรเลือกเป็น Custom เนื่องจากขั้นตอน Click "Use host-only networking" จะไม่สามารถเลือกได้จากแบบ Typical ใน version 6.5.3
การติดตั้ง Max OSX
มีหลายเวปมาแนะนำเลยครับ
ข้อแนะนำการ customize ใน Kalyway 10.5.2
 การเลือก option ระหว่างการติดตั้งเป็นเรื่องที่สำคัญมาก เนื่องจากถ้าเลือกไม่ถูกต้องมีผลให้บูธไม่ขึ้น ต้องลงใหม่กันเลยทีเดียว ข้อสำคัญคือต้องเลือก Drive ให้ตรงกับ Hardware เครื่องที่กำลังติดตั้ง เลยเอาตัวอย่างเครื่องที่ลงแล้วใช้ได้มาให้ดู


การ upgrade จาก Kalyway 10.5.2 เป็น 10.5.3
โหลดไฟล์จากที่นี้ แล้วทำการติดตั้งไฟล์ทั้งสองตัวก่อนแล้วจึง restart เครื่องนะครับ จากนั้นตอนบูธกด F8 แล้วพิมพ์ update -v

ข้อแนะนำ
ระหว่างการติดตั้ง 2_kalyway_10.5.3_kernel จะมีให้เลือก Kernel ซึ่งเราไม่ต้องเลือกเลยก็ได้ครับ จะเป็นการใช้ Kernel ตัวเดิม (เคยเลือกแล้วใช้ไม่ได้ไปเลย)

การใช้ Network ในเครื่อง Mac
ไปที่ VMware > Option แล้วแก้ไข Network จาก Host-only เป็น NAT

การ Share ข้อมูลระหว่าง Windows กับ Mac
ในตัวอย่างอธิบายแบบที่มีสองเครื่องจริงๆนะครับ แต่ก็นำมาใช้กับแบบที่ติดตั้งผ่าน VMware ได้

วันพุธที่ 9 กันยายน พ.ศ. 2552

วิธีการ Hack Restaurant City เพื่อเพิ่ม Level

เขียนโดย นรพล Naraphol (ยอด Yod) ที่ 17:50 4 ความคิดเห็น
ลองดูการ Hack Restaurant City เพื่อเพิ่ม level กันบ้างครับ ตอนนี้สูงสุดได้ถึง level 32
เตรียมโปรแกรมที่ต้องใช้
  1. Firefox  
  2. Flash Player 9 หรือ 10 
  3. Cheat Engine 5.5
  4. Restaurant City Tool 2.3
ลงโปรแกรม
  1. ติดตั้ง Firefox (ใช้ IE ได้หรือเปล่า ไม่เคยลองครับ)
  2. ติดตั้ง Flash Player Version 9 หรือ 10
  3. ติดตั้ง Cheat Engine
  4. Upzip Restaurant City Tool
เริ่มต้นการ Hack
  1. เข้า Facebook ของเราแล้วก็เปิด Restarant City ให้พนักงานทำงานปกติ
  2. เปิด Cheat Engine กดตรงไอคอนรูปคอมพิวเตอร์ แล้วเลือก Firefox กด Open


  3. ที่ Cheat Engine ติ๊กที่ Hex, กำหนด Value Type เป็น 8 Bytes และ ติ๊ก Also scan read-only memory


  4. เปิด Restaurant City Tool นำเลข FFFFFFB8D02A0FF2 ในช่อง Hotkey ไปใส่ในช่อง Hex ของ Cheat Engine แล้วกด First Scan หลังจาก Scan เสร็จจะได้ Address และ Value (ช่องด้านซ้าย) ให้ทำการ double click ข้อมูลจะมาอยู่ในตารางด้านล่างให้นำเลข Address ไปกรอกในช่อง Get ของ Restaurant City Tool


  5. ทำเหมือนข้อ 4 โดยนำเลข C985E45D8B2C4A8B ในช่อง Hotkey อีกช่อง ไปใส่ในช่อง Hex ของ Cheat Engine แล้วกด New Scan และตามด้วย First Scan  และนำค่าที่ได้ไปใส่ในช่อง Get ของ Restaurant City Tool ทั้งช่อง C985E45D8B2C4A8B  และ DB85000000F4998B
  6. ที่ Restaurant City Tool เราจะได้ Address มาจนครบให้กด Get Code จะได้ Code ในช่องด้านล่าง ให้นำ code ไปใส่ใน Cheat Engine โดย Copy Code ทั้งหมดแล้วไปที่ตารางด้านล่างของ Cheat Engine กด Paste หลังจาก Paste แล้วจะได้รายการใหม่คือ ++Points ให้ติ๊กด้านหน้าได้เลย เป็นอันเสร็จ ;-)


  7. เปิดโปรแกรม Cheat Engine ค้างไว้นะครับ ส่วน Restaurant City Tool จะปิดเลยก็ได้ แล้วลองกลับไปดูที่ Restaurant City ใน Facebook จะพบว่าเมื่อพนักงานเก็บเงินเสร็จเราจะได้ level เพิ่มขึ้นทีละมากๆ



ลองดูกันนะครับ ขอให้สนุกกับ Restaurant City อย่าเล่นเพลิดจนลืมทำงานละ ;-)
http://www.facebook.com/naraphol


เพิ่มเงินรวดเร็วใน Restaurant City แบบไม่ต้องโกง

เขียนโดย นรพล Naraphol (ยอด Yod) ที่ 15:14 0 ความคิดเห็น
ลองมาดูวิธีการเพิ่มเงินใน RC แบบไม่ต้องโกงกันบ้างนะครับ ทำได้ง่าย ไม่ยากครับ

เตรียมตัวก่อน
  1. Popularity ต้องเกิน 30
  2. Level ตั้งแต่ 7 ขึ้นไป
  3. พนักงานพลังเต็ม 100%
  4. เวลาเล่นครับ ฮิฮิ
ขั้นตอนการเล่น
  1. ตั้งพนักงานเป็น Cook 1 คน และ Waiter 1 คน ส่วนที่เหลือก็ Rest ให้หมด แล้วกด Save และออกจากเกม
  2. จับเวลาจนครบ 45 นาที แล้วเข้าเกมใหม่จะได้เงิน 2000 จากนั้นสลับหน้าที่พนักงานระหว่าง Rest กับ Cook และ Waiter แล้วกด Save และออกจากเกม 
  3. จากนั้นก็ทำซ้ำแบบนี้ไปเรื่อยๆครับ ภายใน 3 ชั่วโมงก็จะได้เงินประมาณ 8000 ครับ ถ้าว่างก็ทำได้ทั้งวันเลยครับ ** รักษาระดับ Popularity ให้เกิน 30 นะครับ **

ลองดูกันนะครับ ขอให้สนุกกับ Restaurant City อย่าเล่นเพลิดจนลืมทำงานละ ;-)
http://www.facebook.com/naraphol


วันเสาร์ที่ 5 กันยายน พ.ศ. 2552

วิธีการ Hack Restaurant City สำหรับ RC Tool 5.2

เขียนโดย นรพล Naraphol (ยอด Yod) ที่ 16:10 2 ความคิดเห็น
ออกมาใหม่แล้วครับสำหรับ Restaurant City Tool version 5.2 เพื่อแก้ไขฟังก์ชั่นดังนี้ครับ
  1. เพิ่มพลังพนักงาน
  2. ทำอาหารเร็ว
  3. เสริฟ์และเก็บเงินเร็ว
  4. ลูกค้าไม่ต้องการห้องน้ำ
  5. ใช้ Flash version 10 ได้
เตรียมโปรแกรมที่ต้องใช้
  1. Firefox 
  2. Flash Player 10 
  3. Cheat Engine 5.5
ลงโปรแกรม
  1. ติดตั้ง Firefox
  2. ติดตั้ง Flash Player Version 10
  3. ติดตั้ง Cheat Engine
เริ่มต้นการ Hack
  1. เข้า Facebook ของเราแล้วก็เปิด Restarant City ให้พนักงานทำงานปกติ
  2. เปิด Cheat Engine กดตรงไอคอนรูปคอมพิวเตอร์ แล้วเลือก Firefox กด Open




  3. ที่ Cheat Engine ติ๊กที่ Hex, กำหนด Value Type เป็น 8 Bytes และ ติ๊ก Also scan read-only memory




  4. เปิด Restaurant City Tool โดยเข้า http://restaurantcity-tips.blogspot.com/2009/09/rc-tools-online-version-52-for-flash.html จากนั้นนำเลข D85D89C33B28408B ไปใส่ในช่อง Hex ของ Cheat Engine แล้วกด First Scan หลังจาก Scan เสร็จจะได้ Address และ Value (ช่องด้านซ้าย) ให้ทำการ double click ข้อมูลจะมาอยู่ในตารางด้านล่างให้นำเลข Address ไปกรอกในช่อง Address ของ Restaurant City Tool






  5. ทำเหมือนข้อ 4 โดยนำเลขอีก 3 ตัวไป Scan โดยนำไปใส่ในช่อง Hex ของ Cheat Engine แล้วกด New Scan และตามด้วย First Scan  และนำค่าที่ได้ไปใส่ในช่อง Address Restaurant City Tool



  6. ที่ Restaurant City Tool เราจะได้ Address มาจนครบให้กด Get Code จะได้ Code ในช่องด้านล่าง ให้นำ code ไปใส่ใน Cheat Engine โดย Copy Code ทั้งหมดแล้วไปที่ตารางด้านล่างของ Cheat Engine กด Paste หลังจาก Paste แล้วจะได้รายการใหม่คือ RC Stamina Cheat, Cook Fast, Serve/Bill Fast, Toilet ให้ติ๊กด้านหน้าได้เลย เป็นอันเสร็จ ;-)







  7. เปิดโปรแกรม Cheat Engine ค้างไว้นะครับ ส่วน Restaurant City Tool จะปิดเลยก็ได้ แล้วลองกลับไปดูที่ Restaurant City ใน Facebook จะพบว่าพลังงานของพนักงานเราจะเพิ่มเรื่อยๆจนเต็ม 100% และพนักงานก็ทำงานเร็วขึ้น




ลองดูกันนะครับ ขอให้สนุกกับ Restaurant City อย่าเล่นเพลิดจนลืมทำงานละ ;-)
http://www.facebook.com/naraphol


วันศุกร์ที่ 28 สิงหาคม พ.ศ. 2552

วิธีการ Hack Restaurant City สำหรับ RC Tool 5.1

เขียนโดย นรพล Naraphol (ยอด Yod) ที่ 11:09 0 ความคิดเห็น
** RC Tool 5.1 ใช้ไม่ได้แล้วครับ ตามไปดู วิธีการ Hack Restaurant City สำหรับ RC Tool 5.2 และการ Hack เพื่อเพิ่ม Level กันได้เลย **

ลอง Hack Restaurant City ใน Facebook ดูครับ เพื่ออะไรนะหรอ ตามนี้เลย
  1. เพิ่ม level
  2. พนักงานไม่เหนื่อย (พนังงานเพิ่มขึ้นแทนที่จะลดลง)
  3. พนักงานเสิร์ฟได้เร็ว
  4. ลูกค้าเข้า/ออกร้านอย่างเร็ว
  5. ลูกค้าไม่ต้องการห้องน้ำ
เตรียมโปรแกรมที่ต้องใช้
  1. Firefox 
  2. Flash Player 9 (ถ้ามี version 10 ต้องเอาออกก่อน)
  3. Cheat Engine 5.5
  4. Restaurant City Tool 5.1
ลงโปรแกรม
  1. ติดตั้ง Firefox (ใช้ IE ได้หรือเปล่า ไม่เคยลองครับ)
  2. ติดตั้ง Flash Player 9 ถ้าใครมี Version 10 เอาออกก่อนแล้วลง Version 9 แล้ว Restart เครื่อง
  3. ติดตั้ง Cheat Engine
  4. Upzip Restaurant City Tool
เริ่มต้นการ Hack
  1. เข้า Facebook ของเราแล้วก็เปิด Restarant City ให้พนักงานทำงานปกติ
  2. เปิด Cheat Engine กดตรงไอคอนรูปคอมพิวเตอร์ แล้วเลือก Firefox กด Open





  3. ที่ Cheat Engine ติ๊กที่ Hex, กำหนด Value Type เป็น 8 Bytes และ ติ๊ก Also scan read-only memory





  4. เปิด Restaurant City Tool เลือกไปที่ Tab Stamina





  5. นำเลข C85D89C33B28408B ในช่อง Hotkey ไปใส่ในช่อง Hex ของ Cheat Engine แล้วกด First Scan





  6. หลังจาก Scan เสร็จจะได้ Address และ Value (ช่องด้านซ้าย) ให้ทำการ double click ข้อมูลจะมาอยู่ในตารางด้านล่างให้นำเลข Address ไปกรอกในช่อง Address ของ Restaurant City Tool





  7. ทำเหมือนข้อ 5 โดยนำเลข C85D89C33B28408B ในช่อง Hotkey อีกช่อง ไปใส่ในช่อง Hex ของ Cheat Engine แล้วกด New Scan และตามด้วย First Scan  และทำเหมือนข้อ 6 นำค่าที่ได้ไปใส่ในช่อง Address Restaurant City Tool





  8. ที่ Restaurant City Tool เราจะได้ Address มาจนครบให้กด Get Code จะได้ Code ในช่องด้านล่าง




     
  9. ให้นำ code ไปใส่ใน Cheat Engine โดย Copy Code ทั้งหมดแล้วไปที่ตารางด้านล่างของ Cheat Engine กด Paste





  10. หลังจาก Paste แล้วจะได้รายการใหม่คือ Jackal's Worker HP++ ให้ติ๊กด้านหน้าได้เลย เป็นอันเสร็จ ;-)





  11. เปิดโปรแกรม Cheat Engine ค้างไว้นะครับ ส่วน Restaurant City Tool จะปิดเลยก็ได้ แล้วลองกลับไปดูที่ Restaurant City ใน Facebook จะพบว่าพลังงานของพนักงานเราจะเพิ่มเรื่อยๆจนเต็ม 100%





  12. ถ้าลองกลับไปดูที่ Restaurant City Tool จะพบว่ามีอีกหลาย Tab เพื่อ Hack อย่างอื่นเช่น พนักงานเดินเร็ว (Fast1) ก็ใช้ขั้นตอนเหมือนเดิมครับ
ลองดูกันนะครับ ขอให้สนุกกับ Restaurant City อย่าเล่นเพลิดจนลืมทำงานละ ;-)
http://www.facebook.com/naraphol

วันอาทิตย์ที่ 23 สิงหาคม พ.ศ. 2552

การใช้ LDAP ร่วมกับ OLAT

เขียนโดย นรพล Naraphol (ยอด Yod) ที่ 16:10 0 ความคิดเห็น
การตรวจสอบชื่อผู้ใช้และรหัสผ่านใน OLAT ทำได้ 3 วิธีคือ
  1. แบบปกติโดยใช้ OLAT component
  2. แบบ Shibboleth authentication
  3. แบบ LDAP authentication
จะขออธิบายถึงแบบที่สามนะครับคือการใช้ LDAP นะครับ โดยจะเป็นการใช้ Apache DS เป็น Server สำหรับข้อมูลเกียวกับพื้นฐาน LDAP และการติดตั้ง/ใช้งาน Apache DS ดูได้ตามนี้ดังนี้ครับ
  1. LDAP คืออะไร
  2. การติดตั้ง Apache DS
  3. การติดต่อกับ ApacheDS ด้วย Eclipse
Function ของ LDAP ใน OLAT
  1. import User ได้ที่ละหลายๆรายการจาก LDAP ในครั้งเดียว
  2. สร้าง User ใหม่ใน OLAT เมื่อ loging ครั้งแรก โดยนำข้อมูลมาจาก LDAP
  3. กำหนดให้ตรวจสอบ username และ password แบบ real time / offline ได้ โดยถ้าเป็นแบบ real time จะทำการตรวจสอบ username และ password ไปที่ LDAP ทุกครั้ง แต่แบบ offline จะตรวจสอบจาก username และ password ที่เก็บอยู่ใน OLAT
  4. สามารถกำหนดให้มี cache สำหรับเก็บ LDAP password ในกรณีที่ไม่สามารถติดต่อกับ LDAP ได้
  5. สามารถกำหนดให้นำรายชื่อจาก LDAP มาแทนด้วยรายชื่อเดิม
  6. สามารถ map attribute ของ LDAP ให้ตรงกับ user properties ของ OLAT
  7. สามารถกำหนดให้รองรับ multiple base หรือกลุ่มใน LDAP ได้หลายกลุ่ม
  8. รองรับ LDAP server ได้หลากหลายเช่น Apache DA, OpenLDAP, Microsoft Active Directory
  9. รองรับ SSL
การ setup LDAP ในไฟล์ build.properties
  1. ldap.enable=true
  2. ldap.ldapUrl=ldap://localhost:10389
    กำหนด url/port ของ LDAP server
  3. ldap.ldapSystemDN=uid=admin,ou=system
    กำหนด DN หรือ user ที่มีสิทธิ login เข้า LDAP server
  4. ldap.ldapSystemPW=secret
    กำหนด password ของ DN หรือ user ที่มีสิทธิ login เข้า LDAP server
  5. ldap.ldapBases=ou=users,ou=system
    กำหนด base ที่เก็บรายชื่อผู้ใช้ที่ต้องการนำเข้า OLAT
  6. ldap.cacheLDAPPwdAsOLATPwdOnLogin=true
    กำหนดให้ OLAT เก็บ password ของ LDAP แบบเข้ารหัสไว้ด้วยเพื่อใช้เวลาที่ไม่สามารถติดต่อกับ LDAP ได้ (ถ้ากำหนดให้เป็น true ต้องกำหนด password.change.allowed=false แต่ถุ้ากำหนดเป็น false ต้องแน่ใจว่า LDAP server online ตลอดเวลาระหว่างใช้ OLAT)
  7. ldap.convertExistingLocalUsersToLDAPUsers=true
    กำหนดให้ OLAT เปลี่ยน LDAP user ที่มีอยู่แล้วใน OLAT (แต่ยังไม่ได้ถูกกำหนดให้เป็น LDAP user) มาเป็น LDAP user (ถ้ากำหนดให้เป็น ture ไม่ควรจะมี user ชื่อ administrator อยู่ใน LDAP base)
  8. ldap.deleteRemovedLDAPUsersOnSync=true
    กำหนดให้ทำการลบผู้ใช้ใน OLAT (ที่ถูกสร้างผ่าน LDAP sync) เมื่อไม่พบผู้ใช้ใน LDAP โดยอัตโนมัติ
  9. ldap.deleteRemovedLDAPUsersPercentage=50
    กำหนดจำนวนเปอร์เซ็นของการลบผู้ใช้ (ldap.deleteRemovedLDAPUsersOnSync=true) ว่าถ้าจำนวนผู้ใช้ที่หาไม่พบใน LDAP server เกินจากจำนวนเปอร์เซ็นที่กำหนด ให้ถือว่าไม่ต้องทำการลบผู้ใช้เนื่องจากอาจเป็นข้อผิดพลาดที่อาจเกิดขึ้นเมื่อ LDAP server ใช้งานไม่ได้ชั่วขณะ (กำหนด 0 = ไม่ทำการลบทุกกรณี / กำหนด 100 = ลบทุกกรณี)
  10. ldap.ldapSyncOnStartup=true
    กำหนดให้ทำการ Sync เพื่อสร้าง user โดยอัตโนมัติ (ถ้ากำหนดเป็น false ทำให้ user จะถูกสร้างเมื่อ login)
  11. ldap.ldapSyncCronSync=true
    กำหนดให้ใช้ CronTrigger ระบุตารางเวลาการ Sync
  12. ldap.ldapSyncCronSyncExpression=0 0 * * * ?
    ระบุตารางเวลาการ Sync เช่น ทุกๆ ชั่วโมง (วิธีการกำหนด CronTrigger)
  13. ldap.ldapUserObjectClass=person
    กำหนด user attribute ของ LDAP
  14. ldap.attributename.useridentifyer=uid
    กำหนดการ map username ของ OLAT กับ attribute ของ LDAP
  15. ldap.attributename.email=mail
    กำหนดการ map email ของ OLAT กับ attribute ของ LDAP
  16. ldap.attributename.firstName=givenName
    กำหนดการ map firstName ของ OLAT กับ attribute ของ LDAP
  17. ldap.attributename.lastName=sn
    กำหนดการ map lastName ของ OLAT กับ attribute ของ LDAP
  18. olatprovider.enable=false
    กำหนดไม่ให้ login ด้วย OLAT (ถ้าเป็น false ต้องกำหนด default.auth.provider = LDAP แต่ถ้าเป็น true จะสามารถสลับหน้า login ไปมาได้ โดยสามารถกำหนด default.auth.provider = OLAT หรือ LDAP เพื่อให้เริ่มเป็นหน้าแรก)
  19. default.auth.provider=OLAT
    กำหนดหน้าที่ใช้ login เริ่มต้น สามารถเปลียนได้ระหว่าง OLAT (local logins) / Shib (เมื่อใช้ Shibboleth) /LDAP (เมื่อใช้ LDAP)
  20. เมื่อแก้ไขทุกอย่างเสร็จก็ใช้คำสั่ง ant config-all
เริ่มใช้งานครั้งแรกกับ LDAP
  1. Start LDAP server
  2. เพิ่มรายการผู้ใช้ลงไปใน LDAP ที่ ou=users,ou=system (ต้องตรงกับที่กำหนดไว้ใน build.properties > ldap.ldapBases) ตามตัวอย่างจะมี admin,yod1498,yod2,yoda, it>yod1, marketing>yim
  3. Start Tomcat แล้ว OLAT จะ Sync ข้อมูล user โดยอัตโนมัติตามที่กำหนดไว้ใน build.properties > ldap.ldapSyncOnStartup=true ลองตรวจสอบข้อมูลผู้ใช้ได้โดย login ด้วย admin แล้วไปที่ User management > User search จะเห็นรายชื่อพร้อมด้วย Properties ทั้งหมด จาก LDAP ได้ถูก copy มาไว้ใน OLAT โดย user ที่ copy มาจะรวมถึงในโฟลเดอร์ย่อยด้วย (it>yod1, marketing>yim)
  4. ลอง login ด้วย user ที่เพิ่งถูก Sync มา หน้าจอจะขึ้นว่า OLAT login via LDAP แสดงว่าเรากำลังใช้ LDAP อยู่ (ถ้ากำหนด ldap.cacheLDAPPwdAsOLATPwdOnLogin=false ข้อมูล password จะถูกตรวจสอบไปที่ LDAP server โดยตรง)
  5. ถ้าได้ติดตั้งระบบ Chat เมื่อดูข้อมูล Users > User Summary ก็จะเห็นว่าข้อมูลผู้ใช้ได้ทำการ Sync มาที่ Openfire เช่นเดียวกัน
การ Sync ข้อมูลระหว่าง OLAT และ LDAP
  1. กำหนดแบบอัตโนมัติ ให้ Sync ตามเงื่อนไขที่กำหนดไว้ใน build.properties
    ldap.ldapSyncOnStartup=true กำหนดให้ทำการ Sync เพื่อสร้าง user โดยอัตโนมัติ (ถ้ากำหนดเป็น false ทำให้ user จะถูกสร้างเมื่อ login)
    ldap.ldapSyncCronSync=true กำหนดให้ใช้ CronTrigger ระบุตารางเวลาการ Sync
    ldap.ldapSyncCronSyncExpression=0 0 * * * ? ระบุตารางเวลาการ Sync เช่น ทุกๆ ชั่วโมง (วิธีการกำหนด CronTrigger)
  2. กำหนดแบบ manual ให้ลบข้อมูลผู้ที่ไม่มีใน LDAP ออกจาก OLAT และ sync รายชื่อผู้ใช้ ที่ Administration > LDAP
การแก้ไขข้อมูล Attribute ในการ Sync
ในไฟล์ build.propreties > ldap.attributename สามารถกำหนด attribute สำหรับการ Sync ได้เพียง 4 ตัวเท่านั้นคือ useridentifyer, email, firstName, lastName และยังไม่สามารถกำหนด attribute ที่จำเป็น (required) ในการ Sync โดยถ้าต้องการปรับเปลี่ยนข้อมูลเหล่าสามารถทำได้ที่ WEB-INF/src/serviceconfig/org/olat/ldap/_spring/olatextconfig.xml
  1. property name="reqAttrs" กำหนด attribute ที่จำเป็น (required) ในการ Sync เช่น กำหนดให้ต้องมี useridentifyer และ email
    entry key='${ldap.attributename.useridentifyer}' value='userID'
    entry key='${ldap.attributename.email}' value='email'
  2. property name="staticUserProperties" กำหนดค่าเริ่มต้นให้กับ attribute ที่ต้องการ เช่นกำหนดให้ institutionalName มีค่าเป็น MyInstitution
    entry key='institutionalName' value='MyInstitution'
  3. property name="userAttributeMapper" กำหนด attribute สำหรับการ Sync เช่นกำหนดให้ Sync ข้อมูล useridentifyer, email, firstName, lastName, employeeType, businessCategory
    entry key='${ldap.attributename.useridentifyer}' value='userID'
    entry key='${ldap.attributename.email}' value='email
    entry key='${ldap.attributename.firstName}' value='firstName'
    entry key='${ldap.attributename.lastName}' value='lastName'
    entry key='employeeType' value='orgUnit'
    entry key='businessCategory' value='institutionalName'

    ตัวอย่างกำหนด Attribute ในการ Sync ข้อมูลจาก LDAP
    ไปยัง OLAT
การกำหนดรูปแบบการ Login
การใช้ LDAP สามารถกำหนดรูปแบบการ Login ได้ 3 แบบ โดยกำหนดได้จาก build.properties > olatprovider.enable และ default.auth.provider
  1. กำหนดให้ Login ด้วย LDAP เท่านั้น (olatprovider.enable=false และ default.auth.provider=LDAP)
  2. กำหนดให้ Login ได้ทั้ง LDAP และ OLAT โดยเริ่มจากหน้า OLAT แล้วสามารถปรับไปเป็นหน้า LDAP ได้ (olatprovider.enable=true และ default.auth.provider=OLAT)
  3. กำหนดให้ Login ได้ทั้ง LDAP และ OLAT โดยเริ่มจากหน้า LDAP แล้วสามารถปรับไปเป็นหน้า OLAT ได้ (olatprovider.enable=true และ default.auth.provider=LDAP)
 

naraphol.blogspot.com Copyright 2009 Reflection Designed by Ipiet Templates Image by Tadpole's Notez