ใส่ลงไปในหน้า iGoogle ของตัวเองได้ โดยคลิกที่ "+ Google" (ข้างบนนี้ใช้งานได้นะ)
เช่น ถ้าวางไว้บนเครื่องที่มี IP 1.2.3.4
ก็ให้เปิดมาที่ \\1.2.3.4\ShareFolder\
ทุกเครื่องเป็น iMac 20" (ว้าว) แต่ดันบูทใช้เป็น Windows XP Professional
ปัญหาก็คือว่า คนแรกๆจะเปิดได้ จากนั้นสักพักคนหลังๆก็จะต่อไม่ได้
ขึ้นข้อความผิดพลาดอะไรสักอย่างหนึ่ง
ตรวจสอบเครือข่ายก็ปกติดี Ping กันได้ดีอยู่ ไล่ไปไล่มา คิดว่าน่าจะเป็นเพราะจำนวน Client ที่เชื่อมต่อเข้ามามีมากเกินไป Windows XP มันไม่รับอีก (เดา) เปิดไปเปิดมา ไปเจอว่าใน Computer Management (คลิกขวาที่ My Computer แล้วเลือก Manage) จะมีกิ่งหนึ่งที่เกี่ยวกับ Session ของ Shared Folders
จะมี Session ที่เปิดค้างไว้นานแล้วโผล่มาตรึม (ประมาณ 10 ?) ในเมนู Action เลือก Disconnect All Sessions ปุ้บ ให้เด็กที่เมื่อกี้มีปัญหาลองต่อเข้ามาใหม่ ต่อได้แล้ว !
ศาลตัดสินให้เราแพ้ เพราะเราไม่โต้แย้งแผนที่ที่ฝรั่งเศสวาด
ส่วนบริเวณโดยรอบๆ ถือว่าเป็นของไทยแน่นอน
มาเมื่อวาน ไอ้ตาเขแถลงว่า ไทยยอมรับในแผนที่ใหม่ว่าปราสาทเป็นของกัมพูชา และบริเวณโดยรอบที่มีข้อขัดแย้งจะมาเจรจารายละเอียดในอนาคต
เท่ากับว่า
เดิม: ปราสาท-ยังแย้งกันอยู่, บริเวณโดยรอบ-ของไทย แต่ถูกรุกล้ำ
ใหม่: ปราสาท-ยกให้กัมพูชา, บริเวณโดยรอบ-เปิดช่องให้เขาเจรจา
มันยกดินแดนให้เขาไปชัดๆ ยังมีหน้ามาเรียกร้องจะเอาดอกไม้ !! แถลงเสร็จก็ไม่แจกสำเนาแผนที่ให้ ลับๆล่อๆ เรื่องใหญ่แบบนี้ก็ไม่เอาเข้าสภา เหมือนเขาเรียกร้องเอา 20 ไปเจรจายกให้เขาไป 10 ทั้งๆที่ไม่ควรยอมให้เลยสัก 1
เดิม UNESCO อาจจะไม่อยากจดเพราะมันไม่แน่ว่าเป็นของไทยหรือกัมพูชา แล้วมันเรื่องอะไรต้องไปรับรองให้ว่าเป็นของกัมพูชา ให้เขาไปจดทะเบียนมรดกโลก
ได้ผลดังนี้
ดูเหมือนตัวเลข 4328 ได้จากการเอาอัตราข้อมูลที่วัดได้ 541KBytes/sec ด้านล่างมาคูณด้วย 8 ซึ่งน่าจะต่ำกว่าความเป็นจริงเล็กน้อย เพราะในตัว TCP/IP มี Overhead อยู่อีกหน่อย แสดงว่าของจริงก็สูงกว่า 4328 หน่อยนึง ขาขึ้นก็ถูกจำกัดไว้ที่ 512kbps
ลองวัดด้วย sftp หรือ wget ไฟล์โตๆจาก Longdo.com
ก็ได้ค่าพอๆกัน ~500KBytes/sec
ส่วนของที่บ้าน 1Mbps วัดได้ดังนี้
เพื่อที่จะเอาไปใส่ใน iGoogle แบบนี้
และติดตั้งได้โดย
นึกขึ้นได้ว่า ไม่กี่วันก่อนเพิ่งหาเรื่อง ย้ายโฟลเดอร์ /Applications ทั้งหมดของ iPhone
จาก / (ซึ่งมีขนาด ~300MB) ไปที่ /private/var (ซึ่งมีขนาด ~15GB)
เนื่องจาก / ใกล้เต็มหลังติดตั้งโปรแกรมเข้าไปเยอะ (จน Installer เตือนว่าใกล้เต็มแล้วนะ ทั้งๆที่ยังมีเหลืออยู่ ~10MB)
ตอนนั้นก็ย้ายแล้วทำ symlink เหมือนตอนแก้ปัญหาทำนองนี้บน Unix ทั่วไป
# cd / # cp -R Applications /private/var # mv Applications ApplicationsO # ln -s /private/var/Applications .Reboot ทีนึง แล้วก็ ให้ Process ทั้งหลายที่ใช้ไฟล์ใน /ApplicationsO (ซึ่งก็คือ /Applications เดิม) ปลดปล่อยไฟล์ให้หมด จากนั้นก็ค่อยมาลบทิ้ง
# rm -fr /ApplicationsOสรุปว่าได้ เนื้อที่ว่างใน
/ มาเป็น 40MB (ตอนแรกสุดก่อนติดตั้งโปรแกรมต่างๆลงไป มีประมาณ 30MB)
จากข้อความในภาพข้างต้น แสดงว่าไม่ owner หรือไม่ก็ permission ของ Installer.App คงผิด ลองเข้าไปตรวจดู พบว่า owner เป็น root.wheel ถูกต้องอยู่แล้ว เลยลองแก้แค่ permission
# chmod +s /Applications/Installer.App/Installerแล้วเปิด Installer อีกครั้ง ใช้ได้แฮะ เลิกบ่นแล้ว ติดตั้งโปรแกรมได้ตามปกติ
ขั้นตอนการติดตั้ง และใช้งาน Hibernate กับโปรแกรม Java ใน Eclipse มีดังต่อไปนี้
TestHibernate
ใน Project TestHibernate สร้าง Hibernate Configuration File
โดยคลิกขวาที่ชื่อ เลือก New -> Other แล้วค้นหา Hibernate Configuration File
ระบุตำแหน่งของไฟล์ hibernate.cfg.xml ว่าอยู่ใต้ Project นี้แหละ
กรอกข้อมูลเกี่ยวกับฐานข้อมูล วิธีการเชื่อมต่อ รหัสผ่าน ฯลฯ เท่าที่ทราบ ไม่ต้องเครียด เดี๋ยวแก้ในไฟล์ XML ด้วยมืออีกที
สุดท้ายอย่าลืมเลือก "Create a console configuration"
จากนั้นก็กด OK (หรือ FINISH) ไปเรื่อยๆ จนกระทั่งได้ไฟล์ hibernate.cfg.xml
ออกมาใต้ Project นี้
ลองเปิดขึ้นมาดู เนื้อหาไฟล์ควรมีหน้าตาทำนองนี้ อาจจะแก้ไข connection string, ชื่อฐานข้อมูล ชื่อคลาสที่เป็น JDBC Driver ฯลฯ ได้ตามสบาย
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
<property name="hibernate.connection.password">hui</property>
<property name="hibernate.connection.url">jdbc:sqlserver://192.168.1.111;DatabaseName=pool;SelectMethod=cursor</property>
<property name="hibernate.connection.username">sa</property>
<property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property>
</session-factory>
</hibernate-configuration>
ดูว่าที่แถบด้านล่างมี Hibernate Configurations แล้วหรือยัง
ถ้ายังไม่มี ก็ให้เปิดโดยเลือกจากเมนู Window -> Show View -> Others
ถ้าทำการตั้งค่าทุกอย่างถูกต้องเมื่อกี้นี้ เมื่อคลิกที่เครื่องหมาย + หน้า TestHibernate ที่เพิ่งสร้างใหม่ มันควรจะทำการเชื่อมต่อไปที่ฐานข้อมูล และแสดงรายชื่อฐานข้อมูล ฯลฯ มาให้ดูได้ดังนี้
แต่ถ้าเกิดข้อผิดพลาดใดๆ ให้ลองแก้ไขค่าใหม่ โดยคลิกขวาที่ TestHibernate แล้วเลือก Edit Configuration
ข้อผิดพลาดที่พบบ่อยคือ หา Class ที่เป็น JDBC Driver ไม่เจอ ซึ่งแก้ไขได้โดยการเพิ่ม JAR ของ JDBC Driver นั้นลงในหน้า Classpath ของ Edit Configuration
จากนั้นให้สั่ง "Rebuild Configuration" แล้วทดลองคลิกที่เครื่องหมาย + หน้า TestHibernate
อีกครั้ง
เมื่อทดสอบว่าทำการเชื่อมต่อโดยใช้ TestHibernate ได้สำเร็จแล้ว
สามารถสั่งให้ Hibernate Tools สร้างคลาสต่างๆที่จำเป็นจากโครงสร้างฐานข้อมูลที่มีอยู่เดิม
โดยการทำวิศวกรรมย้อนกลับได้ดังนี้
เลือก "Open Hibernate Code Generation Dialog" จากปุ่ม Run ของ Hibernate Tool
ในหน้าจอที่ปรากฏขึ้นมา สร้าง Configuration ใหม่ ตั้งชื่อว่า TestConfiguration
โดยกำหนดค่าดังนี้
TestHibernate ที่เพิ่งสร้างก่อนหน้านี้
autogetn
จากนั้นคลิกที่ "Setup" ข้าง Reveng.xml เพื่อตั้งค่ารายละเอียดตารางของฐานข้อมูลที่ต้องการสร้างคลาส หน้าจอถามว่าต้องการสร้างไฟล์ reveng.xml ใหม่หรือไม่ ตอบตกลง
ระบุตำแหน่งที่จัดเก็บไฟล์ reveng.xml
ในหน้าจอ Table Filter ให้กดปุ่ม Refresh
จะได้รายชื่อตารางในฐานข้อมูลที่ระบุไว้ใน jdbc ปรากฏขึ้นมา เลือกตารางที่ต้องการแล้วกดปุ่ม Include
ตรวจสอบค่าต่างๆในหน้านี้ให้เหมือนดังภาพข้างล่าง แล้วกด Apply
พลิกไปที่หน้า Exporters เลือกให้สร้างไฟล์ดังภาพข้างล่างนี้แล้วกด Apply
Domain Code คือ VO (Value Ojbect) คลาสที่แทน 1 record ใน Table DAO คือ คลาสสำหรับอ่านเขียนข้อมูล (VO) จากตาราง และ HTML คือเอกสารโครงสร้างของตาราง ฯลฯ ส่วนไฟล์ XML Mapping เก็บรายละเอียดความสัมพันธ์ของคลาส VO ทั้งหลายที่สร้างขึ้น กับตารางจริงในฐานข้อมูล ไฟล์เหล่านี้เอาไว้ใช้ตอนสร้าง SessionFactory ของ Hibernate
กดปุ่ม "Run" ถ้าทุกอย่างเรียบร้อย จะได้ไฟล์ต่างๆในโฟลเดอร์ "autogen" (ที่ระบุไว้ในช่อง package) ดังนี้
คลาสจะมีชื่อตรงกับชื่อของตารางในฐานข้อมูล คลาสที่ชื่อลงท้ายด้วย Home คือคลาส DAO ของตารางนั้นๆ