เมื่อ iPod nano สละชีพ ถึงเวลา iriver E100 แล้ว (แต่สุดท้าย iPod nano ก็กลับมาคืนชีพ)

หลังจากใช้ iPod nano 1stG 2GB มาประมาณ 2 ปี เมื่อไม่กี่วันมานี้ iPod nano ตัวเก่งผมดันมีปัญหาเกิด error message "firewire connections are not supported. to transfer songs, connect the USB cable provided." ขึ้นมาทั้ง ๆ ที่ไม่ได้ต่อ firewire เลย (อย่าว่าแต่ต่อเลย แค่สายยังไม่มีเลย) ซึ่งมันขึ้นมาตลอด แต่ยังคงฟังเพลงได้ แต่ stand-by หรือ sleep ไม่ได้ มันทำให้มัน start-up จนแบตหมดไปเลย ถึงแม้ว่าจะแก้ไขด้วยการ reset และ restore ร่วม 10 รอบก็ไม่หาย T_T

ผมเลยตัดสินใจหาซื้อเครื่อง all-in-one media player ตัวใหม่ที่มาแทนดีกว่า โดยหัวข้อแรกที่ต้องสามารถอ่านภาษาไทยได้ โดยไม่ต้อง hack ซึ่งทำให้ iPod ทุกรุ่น ไม่ว่าเก่าหรือรุ่นใหม่ ๆ ไม่สามารถผ่านกฎข้อแรกผมได้ จึงหมดสิทธิ์ได้เงินผมไป ;P

ส่วนยี่ห้ออื่น ๆ ที่ไม่ใช่เป็นเจ้าตลาดอย่าง iriver (แต่มียอดขายในระดับรองลงมา) มีหลายรุ่นที่รองรับ และผมหาข้อมูลได้สัก 1 วันกว่า ๆ เลยไปลงที่ E100 ซึ่งใช้เวลาตัดสินใจ 1 วันหาตามหาว่ามีใครขายบ้าง เพราะ E100 ไม่มีขายในไทย และที่ใช้ ๆ กันก็เครื่องหิ้วทั้งนั้น เลยไปเจอกระทู้ขายพอดี ในราคา 4,400 บาท ได้ขนาด 4GB ผมเลยนัดเจอ และดูสภาพเครื่องว่าเป็นอย่างไรบ้าง ผลก็คือเครื่อง ok มาก และซื้อมาจากญี่ปุ่น มีใบประกันแปะอยู่ด้านหลังว่าซื้อมาเดือน 05 ปี 08 ซึ่งถือว่าใหม่พอสมควร เลยตดลงซื้อมา ในกล่องมีอุปกรณ์ครบครับ ถือว่า ok แถมภาษาไทยใช้งานได้เลย ไม่ต้องทำอะไรกับมัน

เมื่อลง iriver plus 3 แล้วก็มีตัวเตือนว่ามี firmware ใหม่ ผมเลย update ใหม่เลย และ format ใหม่ทั้งหมด ตอนนี้เป็น firmware version 1.06 แล้วครับ ทำงานได้ดี มาก แต่มีปัญหากับการอ่าน ID3 Tag ของ mp3 บางไฟล์ที่มันมี ID3 Tag อยู่แล้ว แต่มันดันไม่ยอมอ่านเพิ่มแบ่ง Artist, Title หรือ Album ตามความเป็นจริงในหลาย ๆ ไฟล์ ทั้ง ๆ ที่ convert ID3 Tag เป็น unicode แล้วด้วย -_-‘ โดยทั้ง ๆ ที่อ่านใน iTunes หรือใน iPod ได้ปกติ เลย งง กับมันอยู่พัก แต่ช่างมัน อ่านไทยได้ ไล่เรียงตาม Dir List เอาแล้วกัน ไม่ต่างกันเท่าไหร่

ต่อมาเรื่องของ software ของ iriver plus 3 นั้น สามารถทำงานได้ดีในการนำเพลง, วิดิโอ, รูปภาพ และไฟล์เท็ก ลงไปได้ โดยเฉพาะไฟล์วิดิโอที่สามารถ convert ตัวไฟล์วิดิโอได้เลยโดยไม่ต้องหาโปรแกรมมา convert เพิ่ม โดย convert จาก Mpeg ทั่วจาก VCD มาเป็น WMV SP ได้เลย ผมลอง convert จากไฟล์ stream ของ MIX08 กับ The Story of the Ribbon นี่ convert มาได้เลย หรือถ้าเป็นไฟล์ flash vdo ที่มีนามสกุล flv ก็ใช้ mediacoder (opensource software ครับ) มาแปลงโดยใช้ extension ของ Zune ให้ convert มาเป็น WMV ที่ทำงานได้บน Zune ก่อน แล้วค่อยมา convert มาลงใน iriver อีกทีนึง ซึ่งจริง ๆ ตัวโปรแกรม mediacoder นี้สามารถ convert ไฟล์ vdo ได้หลากหลายรูปแบบมาก ๆ และโคตรจะทรงพลังครับ แต่ UI ห่วยแตก -_-‘ อย่างที่ผมใช้บ่อย ๆ ก็ convert พวก vcd ให้มีแต่ไฟล์เสียงในรูปแบบ mp3 แบบนี้ โดยตัดภาพเคลื่อนไหวออก ก็ทำได้เช่นกัน

ต่อมาก็เรื่องไฟล์เสียงที่สนับสนุนนี่สนับสนุน FLAC ที่เป็น loseless ด้วย แต่ไม่มี และไม่อยากใช้เท่าไหร่ใช้ mp3 ที bit-rate 192kbps ก็พอสำหรับผมแล้วหล่ะ

อ่อลืมบอกไปว่า อาจจะไม่จำเป็นต้องลง iriver plus 3 ก็ได้ อาจจะ sync ผ่าน windows media player 11 ก็ได้ และลง iriver movie converter ก็ได้เช่นกัน โดยที่มีตัว convert vdo แยกต่างหากให้ด้วย ดีจริง ๆ ไม่ต้องเปิด iriver plus 3 ที่ใหญ่กว่ามาก ก็ได้ ซึ่งผมชอบมาก ๆ เลย แล้วก็ copy ไปใน folder ของ drive ของ iriver drive ได้เลย

วกกลับมา พอใช้ iriver ไปได้ 1 วัน กลับมาที่หอ แล้วลองเสียบ iPod nano เครื่องเก่าดู แล้วชาร์จไฟล์เข้าไปใหม่ (เพราะมันเปิดจนหมดเพราะ error message โชว์ตลอด และไม่ยอมปิดตัวเองลงเพื่อ sleep) พอชาร์จ ๆ ไป แล้วลอง restore ดูอีกรอบ ไป ๆ มา ๆ มันกลับไม่มี error message ขึ้นมาอีกเลย เล่นเอางงไปพักนึง -_-‘ ว่ามันเป็นบ้าอะไร แล้วไป ๆ มา ๆ มันกลับใช้งานได้เฉยเลย

ตอนนี้เลยใช้มันทั้งสองตัวเลยครับ ไม่รู้ว่า iPod nano จะมีปัญหาอีกหรือเปล่า ต้องลองดูอีกสักพักนึง

วันนี้เล่าพอแค่นี้ดีกว่า เพราะใช้งานมาได้ 2-3 วันเอง

DSC00285  DSC00286

DSC00287  DSC00288

DSC00289  DSC00290

OOP in PHP Series [Thai language]

ผมเอา OOP in PHP ทั้ง 4 ตอนที่ลงใน ThaiAdmin Magazine ไปลงใน scribd ใน folder "OOP in PHP Series [Thai language]" แล้ว ซึ่ง ๆ ผมยังเขียนไม่จบ Series ดี ThaiAdmin Magazine ก็หยุดลงที่เล่ม 4 ไปครับ แต่ว่าผมยังไม่หยุดเขียนครับ โดยผมจะหาเวลาว่าง ๆ เขียนต่อที่ 5 และตอนต่อ ๆ ไปเรื่อย ๆ จนกว่าจะหมดภูมิความรู้ ไปข้างนึง -_-‘

เข้าไปได้ที่ OOP in PHP Series [Thai language] ครับ สามารถโหลดเป็น PDF format ไปอ่านต่อได้ครับ

สัญญาอนุญาติแบบ Attribution-Noncommercial-No Derivative Works 3.0 Unported ครับผม

ปรัชญาเซน กับ ปรัชญานิตินิยม อืมมมนะ -_-‘

จาก ปรัชญาเซน

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

อิทธิพลเรื่องการทำตัวให้สอดคล้อง (เป็นหนึ่งเดียวกับธรรมชาติ) อันที่จริงแนวนี้พุทธก็สอน แต่มักไม่มีใครให้ความสำคัญและใช้กัน นอกจากพวกเซน คือ พุทธมักคิดว่าเราอยู่ในธรรมชาติ แต่ให้พยายามตัดหรือจัดธรรม-ชาติ แต่ เซนสอนว่า ให้เราอยู่ในธรรมชาติตามที่มันเป็นอยู่

จาก ปรัชญาในวรรณกรรมของจีน

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

อืมมมม เข้ากับสถานะการณ์ตอนนี้จริง ๆ

PHP Hoffman Framework ย้ายจาก SourceForge สู่ Google Code Hosting

หลังจากใช้ SourceForge(Hoffman Framework:HMF) มาได้ระยะหนึ่ง ก็ใช้งานได้ดี แต่ช้า ๆ อืด ๆ แถมใช้งานยากพอสมควรเลย แต่เมื่อวานซืนได้ลอง Google Code Hosting และติดใจในความง่ายในการใช้งานอย่างมาก ซึ่งอย่างน้อย ๆ ก็ง่ายกว่าของ SourceForge อย่างมากเลยทีเดียว แถมเร็วกว่าอีกด้วย เลยไม่มีข้อโต้แย้งใด ๆ ในการที่จะไม่ย้ายมาใช้ที่นี่ และด้วยอีกเหตุผลคือมันสามารถเอาไปใช้ร่วมกับบริการต่าง ๆ ของ Google อย่าง Groups, Analytic และ Gmail ได้อย่างง่ายดาย ตอนนี้ผมย้ายมาแล้วที่ hoffmanframework แทนแล้วเรียบร้อย ปรับแต่งและ import ตัว code ลงไปใหม่แล้ว กำลังไล่ทำเอกสารทั้งหมดอยู่ครับ ส่วนที่ SourceForge นี่อีกสักพักจะลบ project ออกจากที่นั้นครับผม (เราจะไม่ลืมนาย SourceForge)

ความคืบหน้าของ Hoffman Framework นับจาก 0.1.3a

ตอนนี้ผมเอา Framework ตัวนี้ไปใช้กับ production project หลาย ๆ ตัวและได้มีการปรับเปลี่ยนส่วนของ lib เยอะพอสมควร จนหลาย ๆ อย่างที่ทำได้ใน 0.1.3a นั้นทำงานไม่ได้เมื่อใช้กับ code ชุดใหม่นี้ครับ

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

ใน log ของ SVN บน SourceForge นั้นบางส่วนอาจจะขาดตกไปบ้าง เพราะว่ายังมือใหม่ในการบันทึกข้อมูลทั้งหมดที่ทำลง log ของ SVN ครับ พยายามเก็บรายละเอียดทั้งหมดที่ได้ทำ เพื่อเอาไว้อ้างอิงในภายหลังให้มากที่สุดครับ

และสุดท้าย คาดว่าจะเปลี่ยนจาก SourceForge มาใช้ Google Code Hosting ครับ กำลังดูเรื่องคุณสมบัติต่าง ๆ อยู่ครับผม

[code]
rv 8 – f – ส่วนของการสลับ Profile ของฐานข้อมูลใน Hmf_LogicModel_Db ให้ย้ายมาอยู่ที่ __construct แทน
rv 9 – a – เพิ่ม quoteInto เข้าไปใน Hmf_Logic_Model_Db เพื่อใช้ในการ filter ข้อมูลที่ใช้ใน Database
rv 10 – e – แก้ไขตัวแปรสำหรับ config ค่าแบบทั่วไป และการเข้าถึง
rv 11 – e – แก้ไขตัวแปรสำหรับ routing ค่าแบบทั่วไป และ config โดยใน config เพิ่มตัวควบคุมการใช้ acl ลงไป และ ตั้งแต่ rv 10 ตัวแปรตั้งค่าทุกตัวใช้การขึ้นต้นด้วยตัวเล็กทั้งหมด
rv 12 – e – ปรับเปลี่ยนการใช้งานตัวแปรใน runtime ต่าง ๆ ให้ไป register ใน registry แทนเพื่อใช้แทนการเข้าถึงแบบ global แทนโดยมีชื่อตัวแปรดังต่อไปนี้ที่ได้รับการใส่ลงใน registry
rv 12 – e – — applicationConfigurations เป็น app_config
rv 12 – e – — applicationLocale เป็น app_locale
rv 12 – e – — applicationAcl เป็น app_acl
rv 12 – e – — applicationAuthen เป็น app_authen
rv 12 – e – — viewsInformations เป็น app_viewinfo
rv 12 – e – — routingUrl เป็น routing_url
rv 12 – e – — controllerFile เป็น controller_file
rv 12 – e – — controllerName เป็น controller_name
rv 12 – e – — actionName เป็น action_name
rv 12 – i – — routing ชื่อคงเดิม
rv 12 – i – — acl ชื่อคงเดิม
rv 12 – i – — is_production ชื่อคงเดิม
rv 12 – e – ทำการ register $routes [‘:args’] ลงใน registry ในชื่อ action_args
rv 12 – e – ทำการเปลี่ยนการ instance จาก Class ชื่อ Hmf_RenderView แล้วอ้างอิงในชื่อ $renderView มาเป็น register ลงใน registry ในชื่อ renderview
rv 12 – e – แก้ไข Class ชื่อ Hmf_Config เพื่อให้ register ข้อมูลลงใน app_config และ app_locale ในคราวเดียวโดยซ่อนขั้นตอนภายใน method เลย
rv 12 – a – เพิ่ม method _registry ลงใน Hmf_RenderView_Render และ Hmf_FlowController เพื่อนำข้อมูลใน register เข้าและออกมาผ่าน method _registry ได้เลย
rv 12 – e – ย้ายขั้นตอนการตรวจสอบสิทธิ์ และกำหนดสิทธิ์ผู้ใช้จากใน runtime มาอยู่ใน constructor ของ Hmf_FlowController แทน
rv 12 – a – เพิ่ม key ‘acl’ ในตัวแปรก config เพื่อกำหนดว่าจะใช้การตรวจสอบสิทธิ์หรือไม่
rv 13 – r – เอา flag การตรวจสอบ registry ออกจากบรรทัดล่างสุด
rv 14 – a – เพิ่ม method _registry ลงใน Hmf_LogicModel Hmf,_LogicModel_Db และ Hmf_LogicModel_General ผ่าน __call method
rv 14 – a – ตรวจสอบ index ของ registry ก่อนทำการ access ออกมาใช้งาน
rv 15 – a – เพิ่มขั้นตอนการตรวจสอบ verion ของ Zend Framework โดยต้องใช้ Zend Framework ใน version 1.5 เป็นต้นไป
rv 16 – f – จัดรูปแบบของ code โดยทั่วไป
rv 17 – e – เพิ่ม PATH_DIR_HTML เพื่อใช้แทน /html โดยใช้สำหรับในกรณีที่ต้องการเปลี่ยนชื่อ /html เป็นอย่างอื่น
rv 17 – a – เปลี่ยนชื่อ $path_root เป็น $pathRoot เพื่อให้ตรงตาม naming ของ coding style guideline
rv 18 – a – เพิ่ม debug.routing ลงใน key ของ config เพิ่มนำไปตรวจสอบเวลา debug ตอนทำ routing ใน Runtime
rv 19 – a – เพิ่ม debug.routing ลงใน key ของ config เพิ่มนำไปตรวจสอบเวลา debug ตอนทำ routing ในไฟล์ Configuration
rv 20 – f – แก้ไขข้อผิดพลาดในการใส่ keywords เพิ่ม
rv 20 – f – ปรับประสิทธิภาพในการสร้าง url ให้ดีขึ้น และรองรับการใส่ keywords เพิ่ม
rv 20 – f – แก้ไขการ handle ที่ controller และ action ใหม่
rv 20 – r – เอา filterSlashAtLastChar ออก
rv 20 – r – เอา getUrlWithString ออก
rv 21 – f – แก้ปัญหา kerwords, pattern และ action หายในบางครั้งเวลา generate url
rv 22 – a – เพิ่มค่า routing.cache.lifetime และ routing.cache สำหรับตั้งค่าใช้งาน cache ของ routing
rv 23 – e – เอาการตรวจสอบการ debug ของ routing ไปใส่ใน contructor แทน
rv 23 – e – เปลี่ยนชือการ debug ของ routing จาก debug.routing เป็น routing.debug แทน
rv 23 – a – เพิ่มค่า routing.cache.lifetime และ routing.cache สำหรับตั้งค่าใช้งาน cache ของ routing
rv 23 – a – เพิ่ม cache ลงใน routing โดยใช้ sqlite
rv 24 – f – แก้ไขการขึ้นบรรทัดใหม่ใน error messege
[/code]