iPhone จาก Apple (iPod + Phone + Communication)

จากงาน MacWorld Expo 2007  เมื่อคืนตอนเที่ยงคืนตามเวลาประเทศไทย และ 9.30am ตามเวลาที่ San Francisco เปิดตัวในงานแค่ 2 อย่างคือ AppleTV กับ iPhone

โดยรายละเอียดของ iPhone มีดังต่อไปนี้

หน้าจอ : 3.5 นิ้ว
ความละเอียด : 320×480 ที่ 160 ppi
วิธีการกด : Multi-touch (ไม่ต้องพึ่งปากกาสไตลัส) และปุ่ม Home ตรงกลางเท่านั้น ไม่มี keyboard
ความจุ : 4GB (499$) และ 8GB (599$)
รองรับความถื่ : Quad band (MHz: 850, 900, 1800, 1900)
ระบบไร้สาย : Wi-Fi (b/g), Bluetooth 2.0 และ EDGE (ไม่มี CDMA ไม่รองรับ 3G)
กล้องถ่ายรูป : 2 ล้านพิกเซล
แบตเตอรี่ : 5 ชั่วโมง (สำหรับการสนทนา, ดูวีดีโอและการใช้งานฟังก์ชั่นทั่วไป)
              : 16 ชั่วโมง (สำหรับการฟังเพลงอย่างเดียว)
สัดส่วนและน้ำหนัก : 11.5 x 6.1 x 1.6 ซ.ม.(สูงxกว้างxหนา) ,น้ำหนัก 135 กรัม
ระบบปฎิบัติการ : Mac OS X OS X โดยเว็บเบราเซอร์ใช้ Safari (With Tab), E-mail (IMAP or POP), Google Maps, GPS, Auto Switch Between EDGE and WiFi
รายละเอียดเพิ่มเติม : apple.com/iphone และ siampod.com

——————–
สิ่งแรกที่คิดคือ มันยัด OS X ขนาดใหญ่มหาศาลลงไปได้ไง -_-‘ หรือว่ามันเป็นรุ่น Emb  แต่ที่แน่ ๆ น่าใช้มาก แต่ว่า เอ …….. แล้วถ้าเอา OS X ลงได้นี่ ลง Bootcamp แล้วลง Windows XP/Vista Mobile ได้ไหมนะ ฮ่า …..






Powered Photo  by Apple inc.

 

Blog-tag

โดน Tag มาจาก Katanyoo’s Blog (เห็นว่าเราบ่น ๆ ว่าไม่โดน Tag เลย Tag เราเหรอ รู้นะว่าหาคน Tag ไม่ได้ ฮ่า… เพราะเค้าเล่นกันหมดแล้ว)

[update 1, 10 มกราคม 2549 19:59 น. ] มีคน Tag มาตั้งแต่วันที่ 7 มกราคมที่ผ่านมาแล้ว แต่เพิ่งรู้เมื่อกี้นี้เอง จาก AnnoMundi’s Weblog ครับ

อธิบายสั้นๆ Blog tag ก็คือ การบอกสิ่งที่เกี่ยวกับตัวเอง 5 อย่าง แล้ว tag ต่อให้คนอื่นทำบ้าง แบบนี้ไปเรื่อยๆ

1. ชื่อ Ford AntiTrust เป็นชื่อที่ตั้งขึ้นมาด้วยความอยากสื่อถึงสิ่งที่ตนเองมี และตนเองชอบ Ford เป็นชื่อเล่นที่พ่อและแม่ ตั้งให้ตั้งแต่เด็กในตอนนั้นพ่อซื้อรถ Ford พอดีเลยตั้งเสีย ส่วน AntiTrust นั้นมาจากว่าตัวเองดูภาพยนต์เรื่อง AntiTrust แล้วติดใจชอบมาก และคิดว่าในชีวิตหนึ่งจะได้ทำงานในสภาพแวดล้อมใน Nurv และมีความเก่งแบบ Milo Hoffman ในเรื่องบ้าง ถึงแม้ Nurv จะถูกสร้างขึ้นในจินตนาการให้เหมือนกับ Microsoft ก็ตามที และในนัยหนึ่งก็คือในตอน ม. ปลาย จะเป็นพวกปลายแถวในเรื่องเรียน แต่ Nerd ในเรื่องคอมพิวเตอร์มาก จนกลายเป็น Lab-Boy วันๆ อยู่แต่ห้อง Lab Computer จริง ๆ แล้วสิงตั้งแต่ ม.ต้น ช่วง ม. 3 นั้นแหละ แต่พอเข้ามหาวิทยาลัย ก็พยายามกำจัด Nerd ออกจากตัวไป เริ่มเป็นคนมากขึ้น และกลายเป็น Geek จัด ๆ ก็ช่วงปี 3 และการที่ชอบทำอะไรแปลก ๆ และไม่ชอบทำอะไรที่คนเค้าทำกัน จึง Anti การผูกขาดแนวคิดที่ใช้คำว่า "ใคร ๆ เขาก็ทำกัน" จึงเป็นที่มาของคำว่า AntiTrust ที่แข็งกร้าวมากขึ้นกว่าตอนแรกในช่วง ม.ปลาย

2. IT IDols ของผมคือ Bill Gates หลายคนคงแปลกใจ หรือบางคนที่รู้จึกผมมาก ๆ คงไม่แปลกใจ เพราะผมอ่านประวิติและแนวการทำบริษัท Microsoft ตั้งแต่ตอนอยู่ ม. 1 ในหนังสือ Computer Today ก่อนที่จะรวมเล่มทีหลัง ซึ่งผมก็ยังคงมีเล่นนี้อยู่ โดยหนังสืออื่น ๆ ทั้งไทย และเทศ ถ้าเป็นของ Bill Gates ก็จะพยายามหาซื้อมาให้ได้ โดยในช่วงเวลาอันใกล้นี้จะสั่งหนังสือเกียวกับเขาอีกหลายเล่มจาก Amazon.com แนวคิดการทำงาน และการปรับเปลี่ยนแนวคิดการทำงานในชีวิตประจำวัน เป็นอะไรที่โด้ดเด่น และน่าประทับใจอย่างมาก ใครได้อ่าน The Road A-Head จะเข้าใจเป็นอย่างดี ว่าสิ่งที่เขาคนนี้เขียนไว้ได้เป็นจริงแล้วในวันนี้อย่างมากมาย น่าประทับใจมากครับนายคนนี้

3. ยังคงสายตาดีอยู่ทุกเมื่อ ไม่ว่าจะเล่นคอมพิวเตอร์มากมายแค่ไหน ทำให้เคยได้มีโอกาสใส่แว่นกันเค้าเสียที

4. ภาษาโปรแกรมแรกที่ได้เขียนคือภาษา LOGO และจริง ๆ จัง ๆ กับภาษา C ตอน ม. 3 ส่วนระบบปฎิบัติการตัวแรกในชีวิตคือ DOS 5 Thai ตามด้วย Word Processor คือ RW Word

5. แม่คือคนที่ทำให้ผมได้สัมผัส Computer ได้มากเท่าที่อยากจะทำ ถึงแม้ว่ากว่าจะได้คอมพิวเตอร์ก็ตอน ม.4 และก่อนหน้านั้นไม่มีคอมพิวเตอร์เป็นของตัวเอง แต่ก็อาศัยใช้ตามเวลาที่มีอยู่ที่เรียนพิเศษด้านคอมพิวเตอร์ ECC สาขานครสวรรค์ (ทำเครื่องเค้าพังไปหลายตัว ฮ่า ….)

อีก 5 คนก็รับช่วงต่อไปนะคร้าบบบบบบบบ

ได้แก่ OHM DEV, N’Pop, พี่เดฟ, หน่อย SNC และ พี่ Devman (เจ้าของ Host ที่เช่าอยู่)

 

มีดที่แม่ทำครัวก็ไม่ต่างกับมีดที่มาตรกรฆ่าคน

จั่วหัวแบบนี้ อาจะแปลก ๆ แต่วันนี้เราจะมาพูดถึงเรื่องการใช้เทคโนโลยีไปในทางที่ผิด แต่ที่ผิดมากกว่าคือมาตรการการจำกัดสิทธิ ที่เหมือนกับการห้ามขายมีด เพราะมีมาตรกรบางคนไปฆ่าคน แล้วเหมือนกับโยนความผิดไปให้มีด ทั้ง ๆ ที่มีดมันก็แค่อุปกรณ์ แต่สิ่งที่ทำให้มันเป็นขาวหรือดำ คือ "มนุษย์" จริง ๆ ใน blog ผมก็พูดหลาย ๆ เรื่องที่เกี่ยวกับ "มนุษย์" ที่ทำให้มันไม่ดีเองอย่าง เกมส์ฆ่าคุณได้ ? เป็นต้น ซึ่ง ผมว่ามันก็ไม่ต่างกัน การป้องกันที่ดีมันต้องไปแก้ที่คน จะบอกว่ามันยากที่จะเยียวยา ผมมองว่าถ้าเราไม่เริ่มแก้ แล้วปลายทางมันควรจะอยู่ตรงไหน เหมือนกับเรื่องคลิปวีดีโอฉาว ต่าง ๆ ก็ไม่ต่างกัน จะให้เลิกขายโทรศัพท์ที่ถ่ายรูป ถ่ายวิดีโอไปเลยไหม หรือว่าเลือกขายกล้องถ่ายวีดิโอไปเลย -_-‘ ตรรกะมันก็ไม่ต่างกัน แต่เหมือนกับเลือกปฎิบัติอ่ะ แถมการประโคมข่าวก็ยังช่วยโปรโมตรอีกต่างหาก คราวนี้คนไม่รู้ได้รู้กันทั่วหน้า เฮ้อ ….. เซง ตรรกะแบบสองมาตรฐานจริง ๆ

แล้วในกรณีที่โด่งดังอย่าง Camfrog นี่ การไล่จับเจ้าของ Server นี่มันก็ไม่ใช่ที่ เพราะใครจะมานั่งดูว่ามีใครโชว์ ถึงแม้ว่าไอ้เจ้าของห้อง หรือเจ้าของ Server มันจะเชียร์ให้ถอด กันทุก ๆ 5 นาที หรือ 10 วิ ก็ตาม แต่ถ้าคนมันไม่ถอดอ่ะ มันก็ทำอะไรไม่ได้ เรื่องแบบนี้ถือเป็นเรื่องสมยอมทั้งผู้ดูและผู้โชว์ ถึงแม้มันจะเข้าจ่ายอนาจารในที่ชุมชน -_-‘ (หรือเปล่า) ซึ่งชุมชนในที่นี้คือชุมชนในอินเตอร์เน็ต ที่ยังไม่มีกฎหมายรองรับที่แน่นอน แต่อาจจะโดยเรื่องแพร่กระจายสื่อลามก ก็ว่ากันไป แต่ปัญหาก็คือควรจะไปเอาผิดคนโชว์ ไม่ใช่เจ้าของ เหมือนกับกรณีรูปหลุดที่อื้อฉาวของดาราบางคน ที่ดันไปโพสในเว็บ Pantip.com ซึ่งความซวยก็มาเยือนเจ้าของเว็บอย่างไม่ได้ตั้งใจโดยสมาชิกเอามาโพส ซึ่งอยู่ดี ๆ เจ้าของเว็บก็ต้องมาเสียเงินจ้างทนายให้เสียเงินซะงั้น โดยในกรณีต่าง ๆ นี้ส่วนใหญ่เจ้าของก็มักจะพยายามจบและห้ามปรามอยู่ก่อนแล้วด้วยซ้ำ แล้วกรณีแบบนี้ควรมีกฎหมายรองรับ และน่าจะดูความผิดที่ตัวบุคคลที่จำเพาะผู้กระทำ ไม่ใช่ผู้ให้บริการ ซึ่งผมมองว่าต่อไปถ้ามีคนฟ้อง ISP ฐานที่ร่วมเผยแพร่เว็บลามก หล่ะจะทำไง ก็ในเมื่อมันเข้าได้จาก ISP นั้น ๆ นิ จริงแมะ …..

อย่างที่บอกนั้นแหละ ผมว่าแก้ปัญหา และการเอาผิดควรทำให้มันเข้าถึงคนผิดจริง ๆ ไม่ใช่หาแพะมารับผิดหรือโดยกล่าวหา แบบว่า หน้าคนโดนกล่าวหายัง งงๆ ว่า "ผิดด้วยเหรอ" -_-‘ เฮ้อ …

 

ปีใหม่กับ WordPress 2.0.6

หลังจากลากยาวจากการไม่ได้ upgrade เป็น 2.0.5 ตอนนี้ก็กระโดดมาลงที่ 2.0.6 เสียเลย โดยรวมก็ไม่มีอะไรใหม่เท่าไหร่ แต่เท่าที่อ่านก็เป็นการเปลี่ยนแปลงภายในเสียมากกว่า ประมาณนั้น (ไม่แน่ชัด แต่โดยรวมผมว่ามันเร็วขึ้นนะ หรือว่าเน็ตผมมันเร็วกว่าเดิมหว่า -_-‘)

คุณผู้อ่านท่านใดใช้แล้วเกิดเหตุผิดพลาด แจ้งมาที่ Comment ด้านล่างนะครับ ;)

 

ทำไมทำ PHP Framework เองหล่ะ ? คำถามโดนใจ และอยากตอบยาว ๆ

พอดีว่าเมื่อวาน เพื่อนฟิวส์ถามว่า

"ทำไมทำ PHP Framework เองหล่ะ"

วันนี้เลยมาตอบแบบยาว ๆ เสียหน่อย

คือในตอนแรกเริ่มเดิมทีเนี่ย ผมก็เขียน Class ต่าง ๆ ใช้งานเองอยู่มากมาย ทั้ง Class สำหรับ Query ฐานข้อมูล MySQL หรือ Class วันที่อย่าง thai_datetime ที่รองรับวันที่ภาษาไทย และปี พ.ศ. โดยรวมก็รู้สึกว่าทำงานกับพวกนี้สะดวกขึ้นมาก โยน Object ไปๆ มาๆ ง่ายและง่ายเสร็จเร็ว

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

คราวนี้คิดออกว่าเราทำไม ไม่ทำการอ้างอิงหน้าแบบ Class ไป Method เสียเลยหล่ะ (ในตอนต่อไปขอเรียก Class ว่า Model) คือเมื่อ เขียนโปรแกรมต้องการข้อมูลเกี่ยวกับอะไรก็เรียก Model และตามด้วย Method ที่ต้องการ

ตัวอย่างเช่น

ต้องการอ่านข่าว id ที่ 1234 ระบบก็ไปเรียก Model "News" และ Method "Show" โดยส่ง id "1234" เข้าไปใน Method แล้วเมื่อได้ข้อมูลแล้วก็แสดงผลออกมา

ตอนแรกก็กะทำแค่นั้น แต่ไป ๆ มา ๆ มันเข้าเค้า MVC เว้ย เลยศึกษา RoR อยู่พักนึง เลยเข้าใจเลยว่าไอ้ที่จะทำเนี่ยมันคล้าย ๆ กัน เลยจัดการดัดแปลงแนวคิดใหม่ จากการที่จะเรียก Model ตรง ๆ เป็น ไปเรียก Method ของ Controller (Controller-Method) แทน แล้ว Controller-Method จะไปเรียกใช้ Model และ Method ที่เกี่ยวข้องทั้ง ๆ มาใช้งาน ซึ่งคราวนี้ Model มีอิสระต่อการเรียกใช้ข้อมูลของฐานข้อมูลมากขึ้น สามารถปรับแต่งและแก้ไขคำสั่ง SQL ได้ตามต้องการ โดยการจัดการข้อมูลในฐานข้อมูลต้องสอดคล้องกับความหมายของ Model นั้น ๆ เมื่อ Controller-Method สั่งให้ Model ทำงานเสร็จแล้ว Model จะทำการบันทึกสถานะที่จำเป็นในการแสดงผลใส่ลง Observer-Data (ตัวตรวจจับข้อมูลที่ต้องการ) ไปยัง View ให้ View จัดการแสดงผลข้อมูลตามที่ Controller-Method สั่งมาอีกที แล้วเจ้า View เนี่ยจะเอาข้อมูลใน Observer-Data มาใช้งานตามแต่ View จะใช้

ตัวอย่างเดิมแต่เปลี่ยนแนวคิดใหม่

ต้องการอ่านข่าว id ที่ 1234 ระบบก็ไปเรียก Controller "News" และ Controller-Method "Show" เสร็จแล้ว Controller-Method มีการทำงานอะไร ต่าง ๆ มากมาย เช่นมีการใช้ Model พื้นฐานอย่าง News และอาจจะมี Model "ความดิดเห็น" และ "ข่าวที่เกี่ยวข้อง" อื่น ๆ อีก เพื่อเอาไปแสดงผล โดยส่ง id "1234" เข้าไปใน Controller-Method ด้วย เพื่อเอาข่าวที่ 1234 ออกมา เมื่อได้ข้อมูลครบแล้ว ก็เข้าไปใส่ใน Observer-Data ซึ่งเมื่อได้ข้อมูลแล้วก็แสดงผลออกมาโดยเอาไปจัดการรูปแบบต่าง ๆ ให้สวยงานในส่วนของ View ชื่อ "ShowNews" โดยส่วนของ View จะถูกครอบอีกชั้นด้วย Theme หลักของระบบอีกที

ซึ่งระบบจะประมาณนี้ แต่สุดท้ายก็มีการแยกส่วนหลัก ๆ เป็น Core, Add-on, Warrper Class, Page และ Apps ซึ่งอาจจะมีอะไรมากกว่านี้อีกหน่อย แต่คงไม่ต่างจากข้างบนมากนัก

จากสิ่งเหล่านี้ ทำให้ผมได้แนวคิดมากมาย และการทำแบบนี้มันทำให้รู้ว่า "กูก็ทำได้วะ" เอาแนวคิดที่เราเคยทำอะไรมามากมายใส่มันลงไป

อีกอย่างคือ Framework หลาย ๆ ตัวของเมืองนอกมักเขียนคำสั่ง SQL เพียว ๆ ไม่ค่อยได้ และมักจะทำให้เราเสร็จ ซึ่งผมไม่ชอบเท่าไหร่ เพราะมันควบคุมและย่อคำสั่ง SQL ลำบากมาก หรือทำไม่ได้เลย ซึ่งทำให้ประสิทธิภาพตกไป ใน Framework ผมเลยไม่มีการจัดการ SQL สำเร็จรูปมากมาย อาจมีคำสั่งพื้นๆ เช่นนับจำนวน Record ในตาราง หรือตัวช่วยแบ่งหน้า อะไรพวกนี้ นิดหน่อยซึ่งเป็นงานที่ทำซ้ำ ๆ และใช้กันเยอะอยู่แล้ว เอามาใส่เป็นแบบสำเร็จรูป ส่วนคำสั่ง insert, update, delete อาจจะทำส่วนง่าย ๆ ไว้ในกรณีที่ต้องการลบข้อมูลที่ใช้ primary key อ้างอิงเป็นหลัก แต่ถ้าใช้ตัวอื่น ๆ ด้วย ก็สามารถใช้ SQL Query ทั่วไปแทนได้เลย

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

การพัฒนา Framework ตัวนี้พยายามให้มันอยู่บนพื้นฐานของ Add-on มากกว่า Core คือไม่อยากใช้อะไรก็เอา add-on ออก พยายามไม่ให้ตัวที่เป็น Core ผูกติดกับ Add-on แต่ให้ Add-on มันมาผูกกับ Core เอง เพราะเวลาเอา Add-on ออกมันจะได้ไม่มีปัญหา ซึ่งมันต่างกับ Framework บางตัวที่มีอะไรให้ใช้มากมาย แต่บางครั้งมันมากเกินไปหนัก Framework แล้วมันเอาออกไม่ได้ ซึ่งมันทำให้ประสิทธิภาพตกไปเลย ซึ่งพยายามไม่ให้เกิดกับตัวนี้ (หวังไว้นะ)

อีกอย่างที่ำอยากทำคือทำให้ได้อย่าง RoR กะว่าจะทำ Bat File แล้วเขียนให้มันสร้าง Model, View และ Controller ด้วยคำสั่งเดียว -_-‘ แต่คงยากหว่ะ เอาแค่นี้ก่อนดีกว่า ฮ่า …..  ทำคนเดียวไม่ได้ทำหลายคน ค่อยเป็นค่อยไปแล้วกัน