Calendar

July 2009
S M T W T F S
« Jun    
 1234
567891011
12131415161718
19202122232425
262728293031  

Travian Bot for server version 3.5

This is a new version for version 3.5 you can download by click this
If you run in thai server you must download lang-th.properties copy it info /config

Enjoy it ^^

เหตุผลที่ผมไม่ชอบ Android และอะไรทำให้ผมซื้อมัน

ก่อนอื่นต้องบอกไว้ก่อนเลยครับว่าทั้งหมดเป็นเหตุผลส่วนตัวล้วนๆ

ก่อนจะบอกว่าทำไมผมไม่ชอบใช้ android และเครื่อง HTC Magic ผมใช้ใช้ iphone 3G มาก่อนสักระยะหนึ่งแล้วน่ะครับ

ลำดับแรกเลยหลังจากเปิดเครื่องครั้งแรกคือ เปิดเครื่องช้า ถ้าจะเปรียบเทียบกับ iphone ด้วยกันแล้ว ก็ไม่ต่างกันมากหรอกครับ แต่ถ้าเทียบกับ basic phone มันก็ต่างกันนานพอดูเลย เปิดเครื่องครั้งนึง มากกว่า 2 นาทีเห็นจะได้

เมื่อเปิดเครื่องมาแล้ว ก็พบว่า เราจะเล่นมันยังไง เมนูของมัน อยู่ไหน พยายามที่จะ setting ค่าต่างๆของเครื่องก็พอกับความยุ่งยาก เพราะว่าเมนูของมันได้จัดการเก็บไว้เป็นอย่างดี

ผมจะเล่นเน็ตก็เลยได้ไปเปิด wifi เอ้ ก็ดูดีน่ะ แต่เมื่อลองหาสัญญาณแล้วลอง connect เข้ากับ true wifi (ตอนเล่นอยู่ที่สยามพาราก้อน หลังจากได้เครื่องมาใหม่ๆ) ก็พบว่า มัน connect ตอนไหน ทำไมรู้ไม่เปลี่ยนเลย รูปสัญญาณ wifi มันไม่ได้บอกอะไรเราเลย ก็เป็นเพียงแค่ icon เท่านั้น

หลังจากนั้นก็ทำการลง font thai ลง keyboard thai แล้วก็พบว่า หน้าจอมันเล็กเหลือเกิน ทำให้พิมพ์ soft keyboard ยากเหลือหลาย จะว่าไอมิ้วเขียนไว้ไม่ดีก็ไม่ใช่ แต่หน้าจอมันเล็กกว่า iphone นี่เอง นี่คงเป็นคำตอบที่ดีที่สุด

หลังจากโทรครั้งแรก ผมสงสัยเหลือเกินว่า เซนเซอร์รับแสงมันอยู่ไหน แล้วจอมันจะดับตอนไหน (อย่าผวนน่ะครับ “จอดับ”) ผลลัพธ์ที่ได้คือมันตั่งเวลาเอาไว้ ไม่ได้ใช้เซนเซอร์อะไรเลย ทำให้เวลาคุยแล้ว เอามากดปุ่มอะไร เราต้องกด ปุ่ม (Hard key) เพื่อให้จอมันติดขึ้นมาแล้ว กด Home เพื่อให้ตัวเลขมันขึ้นมา เพื่อจะกดเลขอะไรต่อ จากนั้นแล้วหน้าจอมันจะล็อกโดยจอไม่ดับ เพื่อให้เรากดตัวเลขต่อได้ แต่เนื่องจากที่มันไม่ดับจอ ทำให้มันล็อกการกดตัวเลขโดยไม่ตั่งใจโดย ขึ้นมาว่าให้เราดับเบิลคลิ๊กที่รูปเพื่อปลดล็อก ซึ่งบางครั้งมันทำให้ผม กดเลขไม่ทัน

UI ของ Android ยังทำไม่สมบูรณ์ หรือง่ายๆยังมี BUG อยู่เยอะ ลองกดดู Call History ดูแล้วกด icon บนสุด แต่เลยตัวที่ให้กดไปนิดหน่อย ui กลับตอบสนองเป็นช่องล่างสุด น่าจะเกิดจากการเขียน อ้างอิงตำแหน่งของนิ้วที่กดเข้าไป แล้วไปทำการ mod กับ จำนวนช่อง พอผมกดผิดตำแหน่งหน่อยค่าที่ได้ก็เลยผิดพลาด

UI ของ Android ตอบสนองช้าเหลือเกิน

Multitask นี่เป็นสิ่งที่เค้าบอกว่าเค้าดีกว่า iphone เพราะว่ารองรับ multitasking แต่ไม่มี Task Manager เพื่อมา Kill Process คนเขียนโปรแกรมส่วนใหญ่ไม่ได้เขียน Function Exit เอาไว้ทำให้มันรันไปเรื่อยๆโดยที่เราแทบไม่คิดจะไปใช้มันอีก ผลคือ ช้าอีกนั่นแหละ

หน้าจอมันมีได้แค่ 3 หน้าต่าง ถ้ามีโปรแกรมมากๆทำไงหละ ก็วางโปรแกรมได้ หน้าละ 4×4 ต่อหน้า 3 หน้าก็ได้แค่ 48 app แต่โดนนาฬิกากินไปอีก โดน Search กินไปอีก โดน หน้าต่าง Play list กินไปอีก หมดเลยครับ

ขนาดของ Rom 512M แล้ว sdcard เอาไว้เก็บอะไรไม่ได้มาก
ผมเขียนโปรแกรมที่ใช้ database ขนาดใหญ่ ซึ่งก็เจอปัญหามากมายกับการจัดการ เพราะ internal storage ของมันมีไม่มาก ไม่ได้แชร์รวมกันทั้งหมดเหมือน iphone ทำให้ ต่อไปน่าจะเป็นปัญหา เพราะว่า rom เต็มได้ในที่สุด (โปรแกรมผมมันเพิ่มขนาดของ database เรื่อยๆ)

มันไม่ได้ออกมาเพื่อเป็น entertainment น่ะครับ ไม่เหมือน iphone

multitouch เวลาเล่นเวป ดูรูป หรือ google map เล่นแล้วลำบากมาก หากเล่น iphone มาก่อนจะรับรู้ แต่หากเล่น nokia มาก่อน ก็อาจจะเฉยๆ

ผมยังมองว่าการเลื่อนเวลาเล่นเวป ดูรูป หรือ gogle map มันยังทำได้ไม่ดีพอ พยายามจะเลื่อนเฉียงๆโดยใช้ระยะทางสั้นๆ มันก็เลื่อนแนวแกน xy ก่อนนิดหน่อย แต่ถ้าลากเลื่อนเฉียงๆยาวๆมันก็เลื่อนได้ ผมเดาว่า ui มันช้า เพราะเวลาเขียนโปรแกรมมันก็ต้องอ้างอิงทีละแกนเพื่อให้บวกค่า งานนี้โทษ UI ครับ

สุดท้ายที่เจอบ่อยและพึ่งเจอเมื่อกี้ แล้วมันทำให้ผมเซ็งมากจนมาเขียน blog นี้ก็คือ มันตัดสายแล้วผมไม่รู้ ผมใช้ True ซึ่งที่บ้านผมมันจะตัดบ่อยมาก เจอคุยๆกับเพื่อนคุยๆไป ทำไมเพื่อนไม่ตอบ กูพูดอย่างเดียว ผลก็คือ มันหลุดไปแล้ว มันทำให้ผมต้องพูดคนเดียวบ่อยมาก

ปล ผมวัดกันที่เครื่องเดิมๆ ไม่ได้ลงอะไรน่ะครับ เด๋วหลายคนจะมานั่งเถียงเรื่องโน้นเรื่องนี้ โชว์เกรียนกันอีก
ผมบอกไว้แล้วว่าผมใช้ iphone มาก่อน ทั้งหมดที่เขียน ก็เกิดจากการใช้แล้วขัดใจ ไม่ได้บอกว่า android ไม่ดี แต่มันออกมาทีหลัง iphone แต่ก็ยังทำให้ดีกว่าไม่ได้
เรื่อง copy pause ออกมาก่อนแท้ๆ แต่ทำให้ดีไม่ได้ ใช้ยาก เบื่อ Panel ที่ popup มาเหลือเกิน มันทำให้ผมต้องกด Back เพื่อเอา Panel พวกนั้นออก เพราะว่ามันไม่มีปุ่มปิด มันน่าเบื่อที่ต้องกดปุ่มเยอะมาก เพื่อจะทำอะไร ทำให้การใช้งานมือเดียวลำบาก

ส่วนเหตุผลที่ซื้อ ก็เพราะว่า อยากลอง แล้วคิดว่า ในมือถือมันคงเกิดยาก แต่ว่าถ้าไปเกิดในเครื่องซักผ้า หรือเครื่องปิ้งขนมปัง อาจจะเป็นไปได้ ยังไงก็เลยอยากลองเขียนโปรแกรมบนเจ้านี้เหมือนกัน

สรุป ผมว่า มันเป็น Platform ที่น่าแล่น แต่ในเรื่องของมือถือ ผมว่า ยังไม่น่าเล่นเท่า iphone

ปล ผมเทียบกับ iphone เพราะว่ามันโดนดันให้มาเทียบกับ iphone เอง เพราะว่าราคามันดันตั่งมาได้เท่านี้ ถ้ามันขายที่ 15990 ผมว่าผมคงไม่บ่นเท่านี้หรอก แต่ถ้าเป็น user ธรรมดา ผมว่าคุณเก็บเงินไปซื้อ iphone ดีกว่าครับ

Problem when copy large file in android

หากใครเจอ IOException เวลา copy ไฟล์ โดยที่ มี message เป็น null

ปัญหานี้เกิดจากผมเอง เนื่องจากเขียนโปรแกรม eng-thai dict โดยมี database ขนาด 23Mb ซึ่งโดยปกติแล้ว database ของ android จะถูกเก็บไว้ใน /data/data/package/databases เมื่อเราต้องการนำ database ที่เราสร้างไว้แล้ว ไปใช้ในโปรแกรมของเรา เราก็ต้องทำการ copy ลงไปยัง path ดังกล่าว

ปัญหามันก็เกิดจากว่า ทุกครั้งที่รันโค๊ดที่ทำการ copy ไฟล์ จะเกิด IOException โดยไม่มี message ถ้าเจอแบบนี้ก็แสดงว่า เจอปัญหานี้แล้วหละครับ
อ่านต่อ "Problem when copy large file in android"

Java Serialize and De-serialize

Introduction to Object Serialization

Java object serialization is used to persist Java objects to a file, database, network, process or any other system. Serialization flattens objects into an ordered, or serialized stream of bytes. The ordered stream of bytes can then be read at a later time, or in another environment, to recreate the original objects.

Java serialization does not cannot occur for transient or static fields. Marking the field transient prevents the state from being written to the stream and from being restored during deserialization. Java provides classes to support writing objects to streams and restoring objects from streams. Only objects that support the java.io.Serializable interface or the java.io.Externalizable interface can be written to streams.
public interface Serializable

  • The Serializable interface has no methods or fields. (Marker Interface)
  • Only objects of classes that implement java.io.Serializable interface can be serialized or deserialized

อ่านต่อ "Java Serialize and De-serialize"

แบตเตอรี่ ลิเธียม ไอออน

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

การนำโลหะ ลิเธียมมาใช้ในแบตเตอรี่ ในระยะแรกของการวิจัย พบปัญหาในเรื่องของความปลอดภัย มันไวต่อปฏิกิริยาเคมีมากๆ (ระเบิด!) โดยเฉพาะในขณะชาร์จไฟ ต่อมา จึงได้เปลี่ยนจากการใช้ลิเธียมในรูปของโลหะ มาเป็นรูปของไอออน แทน ซึ่งมีความปลอดภัยกว่า ในปี 1991 บริษัทโซนีเป็นผู้นำแบตเตอรี่ชนิดลิเธียมไอออนออกสู่ตลาดเป็นรายแรก
อ่านต่อ "แบตเตอรี่ ลิเธียม ไอออน"