วันพุธที่ 5 พฤศจิกายน พ.ศ. 2557

เรามาใช้ GitHub กันนะ นะ นะ




จากคราวที่แล้วเขียนบทความเรื่อง GitHub แบบเบื่องต้นไป วันนี้เรามาเข้าสู่ภาคใช้งานจริงกันเถิด

ปล. ในบทความนี้เราจะไปพูดถึงแล้วนะ ว่า GitHub คืออะไรหน้า ตาเป็นไง ไปตามอ่านในบทความเก่ากันเองเน้อ

ปล๒. จะพูดถึงเรื่องจากใช้งานหลักๆนะ อะไรที่มัน advance มาก ควรไปลุยต่อเอง เข้าใจตรงกันนะ

ขอท้ายความนิดนึงนะ ในบทความที่แล้ว บอกไว้ว่า ตอนนี้ GitHub ออก Tool ที่เป็น GUI มาแล้ว พราะฉะนั้นถ้าใครไม่ชอบแบบ Command Line ก็ใช้ตัวนี้ก็ได้ ความสามารถ ไม่ต่างกัน

OK นะ อย่างที่บอกคือ GitHub นี่คือ Version Control ที่ช่วยเราทำงานอย่างมากมาย ประโยชน์มหาศาล ดังนั้นใครอ่านมาถึงตรงนี้แล้วก็ใช้กันเถอะนะ จะได้ไม่เดือดร้อนลูกหลานนะ

ตอนนี้ผมเข้าใจว่าทุกคนใช้ Commit / Push / Update กันเป็นแล้วนะ

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

1 Repo with X Collaborators

ตรงนี้นะ ก็คล้ายๆการเพิ่มสิทธิ์เข้ามาในตัว Repo คนที่เราเพิ่มเข้ามาก็ทำอะไรได้เหมือนเราเลย ณ จุดๆนี้ ผมนี่บอกเลยว่าต้องทำบนเว็บครับ เข้าไปที่เว็บ GitHub ครับ แล้วเลือกที่ Repo ของเราที่เราต้องการจะเพิ่ม Collaborator นะครับ

แล้วทางขวามือจะมี Menu Setting นะครับ คลิ๊กเลยครับ



ก็จะเข้ามาที่หน้า Setting นะครับ ทางซ้ายนะครับ มีเมนู Collaborators  นะครับ นั่นแหละครับ คลิ๊กครับ



คราวนี้ก็จะเห็นว่ามีช่องให้ใส่ username ที่เราต้องการเอาเข้ามาเป็น Collaborator นะครับ กี่คนก็ใส่ไปเลยครับไม่ต้องเกรงใจ



นั่นแหละครับ เท่านี้เราก็จะไม่เดียวดายอีกต่อไปแล้วใน Project เรา เย่


ต่อมานะครับ พอเรามี Collaborator เยอะๆ ต่างคนต่าง Commit นะครับ นึกภาพนะครับนึกภาพ ถ้ารัว Commit กันนะครับ เราจะรู้มั้ยครับ ว่าใคร Commit อะไร ตอนไหน โอวววววว จริงๆดูจาก History ได้นะ แต่มันไม่เท่ มันจะเท่นะถ้า มี Email แจ้งมาว่า ใคร Commit อะไร ตอนไหน โอววววววชีวิตแสนดี

Notification Email When Commit

ตัว GitHub รองรับความสามารถนี้เรียบร้อยแล้วครับ แต่ชีวิตไม่ง่ายครับ ยังไม่สามารถทำแบบว่าใน Setting ส่งให้ Collaborator คนไหนบ้าง

อ่ะ แล้วยังไงล่ะทีนี้ คือเราสามารถเซ็ทให้ GitHub ส่ง Email แจ้งเมื่อมี Commit ได้ แต่ได้แค่ 2 Email เท่านั้นนะ อ้าว แล้วถ้ามี Collaborator เป็น 10 คนทำยังไงล่ะทีนี้ ก็ต้องใช้ Mail Group สิครับ Group เดียว จะกี่คนๆก็ไหว Group รับได้

ขั้นตอนคร่าวๆก็คือ
1. สร้าง Mail Group
2. เอา Email ของ Collaborator เข้า Mail Group (แนะนำให้ใช้ Google Group)
3. เอา Mail Group ไปใส่ใน GitHub

ง่ายมะ ง่ายยยยยยยยยย แต่ชิวิตจริงไม่ได้โรยด้วยกรีบกุหราบ เพราะทำแค่นี้เหมือนจะพอ แต่ไม่พอ เราต้องเอา noreply@github.com มาใส่ใน Google Group ของเราด้วย


ส่วนขั้นตอนการเอา Mail Group ไปใส่ใน GitHub ก็ดูได้ที่
https://help.github.com/articles/receiving-email-notifications-for-pushes-to-a-repository/ และ
http://stackoverflow.com/questions/7015300/receiving-emails-on-git-push


ส่วนวิธีสมัคร Mail Group ไปลุยกันเองนะ

ปล๓. บทความนี้เน้นให้ลุยเองนะ ไม่บอกหมดแบบ 100%
ปล๔. ขอขอบคุณทุกคนที่อ่านมาจนจบนะครับ











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

มาเจาะลึก ASUS Zenfone 5 (Intel) กัน


พอดีว่าได้เจ้า ASUS Zenfone 5 ตัว 3G 2sims มาครอบครอง ตอนก่อนจะได้มาก็หาข้อมูลพอสมควรว่า มันใช้ CPU ของ Intel นะ ประสิทธิภาพมันเป็นยังไง แล้วใช้ VGA ตัวไหน ปรากฏว่า หาข้อมูลไม่ค่อยได้เลย (ได้แหละ แต่น้อยมาก) ประกอบกับพอมีโทรศัพท์อยู่หลายเครื่อง ก็เลยจะทำการทดสอบเพื่อเปรียบเทียบประสิทธิภาพเครื่อง จะได้รู้กันว่า เจ้า CPU Intel เนี่ยมันประมาณไหน

ปล. จะพูดแต่เรื่องที่ไม่เกี่ยวกับ ตัวเครื่องเป็นยังไง กล้องดีมั้ย เสียงดังฟังชัดมั้ย ...... พวกนี้ไม่พูดนะ มีคนทำรีวิวเยอะแล้ว




ก่อนอื่นก็ต้องมาดูที่สถาปัตยกรรมกันก่อนว่าเจ้า Intel Atom z2560 ที่ทำงานบน Zenfone 5 นี่เป็นยังไง
Essentials
StatusLaunched
Launch DateQ2'13
Processor NumberZ2560
# of Cores2
# of Threads4
Burst Frequency1.6 GHz
Intel® Smart Cache1 MB
Instruction Set32-bit
Instruction Set ExtensionsSSSE3, SSE3, SSE2
Embedded Options Available
No
Lithography32 nm
VID Voltage Range0.3-1.2V (Vcc)

เมื่อพิจารณาดูแล้วจะพบว่านี่มันตระกูล X86 นี่นา ไม่ใช่ ARM แบบชาวบ้านเค้า โอเคอันนี้ไม่เป็นไร ขอให้อัตราการใช้พลังงานต่อประสิทธิภาพมันอยู่ในเกณฑ์ที่จะมาอยู่ในมือถือได้ก็ใช้ได้แล้ว เข้าใจตรงกันนะ

อ้าวแล้วจะมีโปรแกรมอะไรที่ใช้ด้วยกันไม่ได้มั้ย ตอบเลยว่า ก็อาจจะมี แต่โอกาสที่จะเจอ ก็คงราวๆถูกเลขท้าย 3 ตัว ติดต่อกัน 2 ครั้งมั้ง




เข้าเรื่องละนะ

ว่ากันเรื่อง CPU ก่อน
เนื่องจาก ผลการทดสอบที่ออกมาเป็นตัวเลข มันบอกอะไรไม่ได้ 100% ฉะนั้นสรุปสั้นๆเลยว่าประสิทธิภาพของ Intel Atom z2560 เมื่อเทียบกับ Qualcomm Snapdragon 400 และ Qualcomm Snapdragon 600 จะได้ผลคือ

Qualcomm Snapdragon 400 < Intel Atom z2560 <<< Qualcomm Snapdragon 600


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



มาต่อกันเรื่อง GPU
อันนี้แหละที่ถือได้ว่าเด็ดจริง อะไรจริง เพราะเจ้า Intel Atom z2560 นั้นมากับ PowerVR SGX544mp2
ถ้าถามว่าแรงขนาดไหน ก็ต้องเทียบกับพวก Adreno 305 ที่มากับ Qualcomm Snapdragon 400 และ Adreno 320 ที่มากับ Qualcomm Snapdragon 600 ผลก็คือ 

Adreno 305  < PowerVR SGX544mp2 <<< Qualcomm Snapdragon 600

ก็ประมาณเดียวกันกับตัว CPU (แน่อยู่แล้ว) แล้วทำไมถึงบอกว่ามันเด็ด มันเด็ดเพราะว่าเจ้า PowerVR SGX544mp2 ออกมาตั้งแต่ปี 2010 แล้ว แต่ Adreno 320 เนี่ยพึ่งมาตอนปี 2012 ก็นะ เกือบ 2 ปีถึงจะแซงกันได้ แล้วถ้าถามต่อว่า แล้ว VGA ของ PowerVR รุ่นใหม่ๆล่ะ ก็ตัวแรงสุดตอนนี้อยู่ใน iPad Air ไง นั่นแหละแรงสุดละ

ส่งท้ายด้วยผลจาก 3dMark หน่อยละกัน พอเป็นพิธี

ASUS Zenfone 5 + Intel Atom z2560 + PowerVR SGX544mp2









LG Nexus 4 + Qualcomm Snapdragon S4 Pro + Adreno 320











ตารางเปรียบเทียบ

mode / device Asus Zenfone 5 Nexus 4 SONY Z2
ICE STORM 6421 Maxed out! Maxed out!
ICE STORM EXTREME 5712 10832 Maxed out!
ICE STORM UNLIMITED 3615 7037 18504


ทีนี้สิ่งที่ควรกังวลคือ Intel จะออก Kernel ให้ไวขนาดไหน เพราะเรื่องนี้ส่งผลกับความเร็วในการอัพเดท version Android เต็มๆเลย


อ้างอิง

วันศุกร์ที่ 18 กรกฎาคม พ.ศ. 2557

GitHub 3 times โย่



GitHub 3 times โย่


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






มาเริ่มกันที่ GitHub คืออะไร

GitHub คือ 1 ใน Git
แล้ว Git คืออะไร เอาง่ายๆมันคือ Version Control 

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

อ่ะ อ่ะ อ่ะ นายคิดเหมือนที่เราคิดมั้ย
ถ้าเราใช้ Git มาเป็นตัวควบคุม เวลาที่เราทำงานกับไฟล์ๆเดียวกัน ที่ละหลายๆคน (งงมั้ย) เจ้า Git เนี่ย จะช่วยให้เรารู้ว่าไฟล์นี้ใครทำอะไรไว้บ้าง ลองนึกภาพดูนะ ว่าเรารู้ตัวการที่ก่อ Bug ได้ อืมมมมมมมมม เข้าท่า



OK เข้าเรื่อง GitHub ดีกว่า

เจ้า GitHub เวลาทำงาน มันก็จะคุมไฟล์ที่เราเลือกไว้ จะไฟล์เดียวหรือหลายไฟล์ก็ได้ เราเรียกทั้งก้อนของไฟล์ที่ GitHub คุมว่า Repository ก็เข้าใจง่ายๆว่าอะไรก็ตามที่อยู่ใน Repository เจ้า GitHub ดูแลให้หมด

ความเจ๋งของ GitHub คือความสามารถ Offline เราสามารถ Commit ได้ในขณะที่ไม่ได้ Online แล้วค่อยไป push แล้วตัว GitHub จะทำการ Merge ส่วนที่เราแก้ไข เข้ากับส่วนของคนอื่นให้เองเลย แต่ถ้ามันงงว่าจะ Merge ยังไงดี มันจะถามเราว่าจะ Merge ยังไง

พอเรารู้ว่ามีคนอื่นมาแก้ไขไฟล์เราก็ pull ลงมา ถ้าไฟล์ที่ pull ลงมามันมีส่วนที่แก้ไข เจ้า GitHub จะทำการ Merge ให้เอา และแน่นอนถ้ามันงง เราก็ต้อง Merge แบบอัตโนมือนะ





Commit, Push, Clone, Merge, Pull
คำเหล่านี้น่าจะเป็นคำหลักๆ ที่ใช้บ่อยๆๆๆๆๆๆๆๆๆๆ มาก ถามว่ามากขนาดไหน ก็เอาเป็นว่าขนาดใช้ Tool แบบ GUI ก็ยังจำได้แบบไม่ยาก





ทีนี้ในเรื่องการใช้งาน

จริงๆแล้วการใช้งาน GitHub จะทำผ่าน Command Line ซึ่ง.....(เข้าใจตรงกันนะ)....
มันก็เลยต้องมีคนทำ Tool ออกมาเป็น GUI ให้ใช้ง่ายๆๆๆๆๆ ขั้นตอนก็ไม่มีอะไรมาก ลองฝึกในเว็บของ GitHub ให้พอเห็นภาพ Commit, Push, Clone, Merge, Pull แล้วก็ใช้ Tool ได้เลย ไม่ยาก เมื่อเทียบกับการหัดใช้ Java หรือ obj C แน่นอน

ตัว Tool ที่เป็น GUI ก็มีทั้งของ GitHub เอง และของเจ้าอื่นๆอีกมากมาย เลือกใช้ได้ตามสะดวกเลยทีเดียว


ใช้ได้ฟรีมั้ย

เจ้า GitHub เนี่ย ใช้ฟรีครับ ฟรี ฟรี ฟรี แต่..... อะไรที่เราเอา Repository ไปฝากไว้กับ GitHub มันจะ Publish นะ ถ้าอยาก Private ต้องเสียเงิน

แต่ แต่ แต่ เราสามารถเปิด Server เองได้ ด้วย GitLab (คนเจ้ากับ GitHub นะ)  เท่าที่รู้ตัวที่ดังที่สุด คือ www.gitlab.com นี่แหละ



ภาคปฏิบัติ

สำหรับ Tool ที่ใช้กับ GitHub เราก็ใช้ Tool ของ GitHub นี่แหละง่ายดี (จริงๆแล้ว มีหลายตัวมาก แต่เลือกไม่ถูก เลยเอาตัวนี้) แต่ว่าหน้าตาของ Tool ที่รันบน Mac กับ Windows มันจะแตกต่างกันนิดๆ แต่ก็เข้าใจได้ไม่ยาก

หลักการใช้งานคือถ้าเรามีโปรเจ็คของเราอยู่แล้วเป็น Folder แล้วเราต้องการเอา Folder ขึ้นบน Repository เราก็จะต้องสร้าง Repository ขึ้นมาใหม่ โดยชี้ Path ไปที่ๆ Folder งานของเราอยู่ แล้วตั้งชื่อ Repository ให้ตรงกับ Folder งานของเรา แล้วตัว Tool จะอ่านไฟล์ทั้งหมดภายใต้ Folder งานของเรา แล้วเราก็จัดการ Commit + Push ได้เลย แต่ต้องไม่ลืมที่จะใส่ข้อความกำกับการ Commit ด้วยนะ ไม่งั้นมันจะไม่ยอม Commit

สำหรับข้อความกำกับการ Commit แค่บังคับว่าต้องมี แต่ก็ไม่มีการกำหนดตายตัวว่าต้องเป็นอะไร ดังนั้นหลักนิยมคือ บอกไปว่าเราทำอะไรไปบ้างก่อนการ Commit นี้ ประมาณนี้


ที่นี้ เรามาดูหน้าตาของ Tool กัน เริ่มที่



Mac OS

โหลดที่ https://mac.github.com/
จะเห็นว่า ใน Repository นี้ (mac.github.com) มีการ Commit โดยคนหลายคน หลายครั้งที่ผ่านมา และยังสามารถบอกได้ว่า การ Commit ครั้งนี้มีอะไรที่เปลี่ยนแปลง






Windows

โหลดที่ https://windows.github.com/
เนื่องการที่คือโปรแกรมที่เอาไว้ใช้งาน GitHub ถึงแม้จะรันบน OS ที่ต่างกัน แต่ความสามารถมันก็แบบเดียวกันนี่แหละ แต่สังเกตุมั้ยว่า หน้าตาโปรแกรมตัวนี้ออกแบบมาตาม Modern Design ที่ Microsoft ภูมิใจนักหนา เดะๆเลย จะว่าไป นี่เป็นโปรแกรมตัวแรกเลยนะ ที่เป็น Modern รันบน Desktop โหมด ธรรมดาได้ ที่ผู้เขียนได้ใช้ (ปกติ App ที่เป็น Modern จะบังคับให้รันใน Modern โหมด)





มาถึงตรงนี้แล้ว

ก็บอกได้เลยว่ามาใช้พวก Version Control กันเถิด ถึงจะบอกว่าทำคนเดียวไม่จำเป็นต้องใช้ แต่อย่างน้อยมันก็ช่วยเรื่อง Backup ได้ด้วย ยิ่งถ้าใน Project มีคนหลายคนอันนี้ยิ่งสำคัญใหญ่เลย

บทความนี้ได้แรงบรรดาลใจจาก
@nuuneoi - http://nuuneoi.com/blog/blog.php?read_id=704

วันศุกร์ที่ 2 พฤษภาคม พ.ศ. 2557

วันอังคารที่ 22 เมษายน พ.ศ. 2557

20 ปี สู่เส้นทาง Software Developer

blog นี้ไม่มีอะไรมาก ก็แค่อยากจะบันทึกเรื่องราวเอาไว้เฉยๆ เอาแค่ที่สนใจทางด้าน Software พอ ด้าน Hardware ไว้ทีหลัง

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

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

พอขึ้นประถม 4 เริ่มปีกกล้าขาแข็ง เสาร์-อาทิตย์ นั่งรถไฟออกจากบ้าน 7 โมงเช้า ไปเรียนคอมที่พิโลก( Siam Computer) ตอนนั้นจำได้เลยว่า ไม่ค่อยรู้เรื่องอะไรหรอก ก็มีโปรแกรมแนวๆ word excel fox-pro พวกนี้ ก็เรียนไป เรียนเสร็จประมาณ บ่าย 3 ก็ไปเที่ยวท็อปแลนด์ รอรถไฟกลับบ้านประมาณ 5 โมงเย็น ก็ซักปีกว่าๆได้ ไปมันทุกเสาร์อาทิตย์

ช่วงตั้งแต่ประถม 4 จนถึง มัธยม 3 ก็ไม่ค่อยมีอะไรมากเน้นเล่นเกมเป็นหลัก จนช่วงปิดเทอร์มใหญ่ ขึ้นมัธยม 4 นี่แหละที่ได้ไปเรียนพิเศษที่กรุงเทพ (ที่จริงคือโดนบังคับไปสอบเตรียมอุดม แต่ไม่ค่อยอยากไป  เลยขอเรียนพิเศษ) ก็ไปลงเรียน HTML กับ JavaScript ที่ Siam Computer แถวๆสยาม ก็ ok อ่ะ เด็กบ้านนอกเข้ากรุงฯ (เอาซะใจกลางกรุงฯเลยด้วย) ก็นะเรียนเสร็จก็ไปนั่งเล่นชมวิวแถวน้ำพุ (ตอนนี้เป็นห้าง Digital Gateway ไปซะแล้ว) ได้ความรู้มานิดๆหน่อยๆ สะพานเหล็ก สะพานพุทธ คลองถม บ้านหม้ออยู่ตรงไหน จตุจักรอยู่ไหน เซ็นทรัลลาด ฟิวเจอร์รังสิต พันทิพย์ ไปมาหมด (ไม่เกี่ยวกับ HTML รึ JavaScript ซักอย่าง)

พอขึ้น มัธยม 4 ก็ได้ไปแข่งงานศิลปะ... (จำชื่อเต็มไม่ได้แล้ว) ผลคือระดับจังหวัดมันก็สบายๆอยู่ แต่พอผ่านไประดับภาคนี่ ทำไมเค้าเก่งกันจังหว่า เก่งชนิดที่ว่าเทพเลย (คือตอนนั้นรู้สึกแบบนั้นจริงๆ) ก็เลยเริ่มหาหนังสือด้าน Programming มาอ่าน ไม่รู้ท่าไหน ไปหยิบได้ ภาษา C มา ก็งงซิ อ่านยังไงก็ไม่เข้าใจ ก็พอดีว่าอาจารย์สอนคอม บางทีพอดีเวลาว่างก็สอนเรา ไอ้เราก็ได้มั่ง ไม่ได้มั่ง ตามเรื่องตามราวไป

แล้วพอดีว่าช่วงงานวันวิทย์ที่ ม.นเรศวร เค้ามีแข่งเขียนโปรแกรม แน่นอนเราไม่พลาดถึงแม้จะไม่ค่อยรู้เรื่อง ผลคือ เค้าให้โจทย์ว่า ให้ทำตัวเดินหมากฮอส(ตัวม้า) ว่าถ้าอยู่ที่ช่อง (x,y) จะเดินไปที่ไหนได้บ้าง แล้วพอเดินไปช่องนั้น จะเดินไปไหนต่อได้อีก โอ้ววววววว คิด Algorithm ได้นะ แต่ code เป็น C ไม่สำเร็จ จำไม่ได้ละว่าทำไมถึงไม่สำเร็จ

จากความสำเร็จ(?)ในตอนที่ไปแข่งที่ มน. ก็เป็นแรงผลักดันให้สนใจด้านคอมมากขึ้น ก็เริ่มแบ่งเวลาจากการเล่นเกมมาศึกษามากขึ้น พอช่วงปิดเทอร์มขึ้น ม.5 มันมีแข่งทำเว็บวันแม่ โดย CITCOM มน. ก็ส่งแข่ง ผลคือ ได้ที่ 2 คุยโมไปได้ 7 วัน 7 คืน 555

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

พอขึ้น ม.6 ช่วงนี้ติดสาว ก็ไม่มีอะไรมาก จนมาเรียนระดับมหาวิทยาลัย ชั้นปีที่ 1 วิชา Introduction to Computer อันนี้แหละที่ได้เรียนรู้อะไรใหม่ๆหลายๆอย่าง กับวิชา Introduction to Programming ที่เรียกได้ว่าทุ่มสุดตัว

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

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

หลังจากนั้นร้อนวิชาไปแข่งอะไรซักอย่างในกรุงเทพฯ ผลคือแพ้เยินเลย เจ็บใจสุดๆตอนนั้น ก็เลยตั้งอกตั้งใจเรียนมากขึ้นในช่วง ปี 3-4 ก็มาถึงปลายทางชีวิตในมหาวิทยาลัยละ เน้นเอาดีทาง Java กับ Web สุดท้ายผลจากการตั้งใจเรียนมากขึ้น เกรดจบ ป.ตรี เลยพ้น 3 มาได้ แบบเฉียดฉิว

หลังจากเรียนจบ ช่วงนี้หลุมดำ แต่ก็ได้หัดๆ Android บ้าง เล็กๆน้อยๆ เข้างานนั่นนุ่นนี่อย่างพวก barcamp, google devfest และที่สำคัญที่สุดเมื่อปี 56 ได้มึนๆไปเข้า Startup Camp ที่ ม.กรุงเทพ กล้วยน้ำไท ตอนแรกก็ไม่รู้หรอกว่ามันเป็นยังไง รู้แต่ว่าถึงเวลาที่จะต้องทำอะไรใหม่ๆ ต้องเปลี่ยนแปลงได้แล้ว ก็ไป ผลคือ ได้รู้ว่าถึงเราจะไม่เก่งมากนัก แต่ก็ไม่ได้ปลายแถวนะ ถ้ามีแรงผลักดันในตัวเองมากพอ อะไรๆเราก็ทำได้ ถึงจะไม่ได้ผลดีมากนัก แต่ก็ ok อยู่ ไม่ขี้เหร่

อ้าว ข้ามจุดสำคัญไป เมื่อ ปี 2555 ได้กลับไปเริ่มเรียนโท ที่ มน. ที่เดิมที่จบตรีมา ทำไมเลือกที่นี่น่ะหรอ ใกล้บ้านคือคำตอบเลย แต่ว่าไม่ได้เรียน Com Sci แบบตอน ป.ตรีแล้วนะ รอบนี้ เรียน IT เพราะว่าความขี้เกียจในตัวมีเยอะ กลัวจะเรียนไม่จบเอา ความรู้สึกในการเรียนรอบนี้ส่วนใหญ่ คือ เหมือนไปนั่งทบทวนสิ่งที่รู้แล้ว กับเติมเต็มส่วนที่ขาดหายไป แต่ถึงอย่างนั้นก็ได้อะไรใหม่ๆมาหลายอย่างอยู่

แล้วก็มาถึงจุดเปลี่ยนสำคัญอีกครั้ง เมื่อมีเหตุให้ต้องรับงานทาง iOS ทั้งที่ไม่เคยจับมาก่อน การรับงานครั้งนี้ถือได้ว่าเป็นการรับงานอย่างเป็นทางการครั้งแรกเลยทีเดียว ด้วยความรู้เดิมที่มีอยู่ กับความช่วยเหลือ และอุปกรณ์ใหม่ ทำให้สามารถผ่านมาได้ด้วยดี ทั้งๆที่ตอนแรกก็ไม่มั่นใจว่าจะทำได้มั้ย

จากนี้ต่อไป จะเป็นอย่างไร เส้นทางข้างหน้าจะลำบาก หรือสบาย ไม่รู้ รู้แต่ว่า วันนี้เราพอมีความรู้ พอมีกำลังอยู่ ไม่ว่าอะไรจะเข้ามา เราจะผ่านมันไปได้ ไม่ว่าจะเป็นอย่างไร เป้าหมายของเราคือ...


to be the Great Software Developer

ปล. บรรยากาศตอนเรียนตรี กับโทที่ภาควิชาต่างกันมาก ตอนนี้มีกิจกรรมทางวิชาการเพิ่มมาเยอะมาก มีวิทยากรมาบรรยาย และทำ workshop ถี่กว่าเมื่อก่อนมากเลย

วันจันทร์ที่ 21 เมษายน พ.ศ. 2557

[review] มีอุปกรณ์เยอะ มันก็ต้องพกที่ชาร์ทไปเยอะ แต่แก้ได้ด้วย Coop Jelly Charger Station

Coop Jelly Charger Station


ในยุคนี้ หลายๆคนที่มีอุปกรณ์พวกมือถือ มากกว่า 1 เครื่อง คงจะมีปัญหากับการชาร์ทไฟ ที่ต้องใช้ที่ชาร์ท 1 อันกับอุปกรณ์ 1 ชิ้น แล้วปัญาหามันอยู่ที่ระยะเวลาการใช้งานมันก็ดันพอๆกัน ทำให้ตรงชาร์ทพร้อมๆกัน ก็ไม่รู้เหมือนกันว่าทำไมพวกผู้ผลิตทั้งหลายไม่ยอมให้ที่ชาร์ทที่สามารถชาร์ทอุปกรณ์ได้มากกว่า 1 ตัวพร้อมๆกันมาซะที แต่จะว่าไปบางรุ่นบางยี่ห้อไม่ให้ที่ชาร์ทมาด้วยซ้ำนะ

ทีนี้มันก็เลยมีช่องว่างให้ผู้ผลิตรายอื่นผลิตที่ชาร์ทที่สามารถชาร์ทอุปกรณ์ได้พร้อมๆกันมากกว่า 1 อุปกรณ์ออกมาขาย แต่มันก็ดันมีปัญหาตามมาอีกอย่างเช่น

  • กรณีที่ 1 ที่ชาร์ท A สามารถปล่อยไฟได้ 1A ออกทาง USB 2 ช่อง แต่กรากฎว่า เวลาใช้ไฟจาก USB พร้อมกันทั้ง 2 ช่อง กระแสไฟดันตกไปอยู่ที่ช่องละ 0.5A หรืออาจจะต่ำกว่าด้วยซ้ำ
  • กรณีที่ 2 ที่ชาร์ท B สามารถปล่อยไฟได้ 1A ออกทาง USB 2 ช่อง และ สามารถปล่อยไฟได้ 2A ออกทาง USB 1 ช่อง แต่พอชาร์ทจริง ใช้ USB 1A แค่ 1 ช่อง ดันได้ไฟออกมา 3A ????????

อันนี้เนื่องจากผู้เขียนก็ไม่ได้มีความรู้ทางด้านไฟฟ้ามากมายนัก แต่ก็ขอเดาว่า เค้าออกแบบวงจรมาให้มันแชร์กัน ไม่ได้แยกกัน อ้าวแล้วแบบนี้จะมีที่ชาร์ทตัวไหนที่สามารถแยกจ่ายไฟได้จริงๆมั้ย ก็ขอตอบว่ามี ผู้เขียนก็หามานานแล้วที่ราคามันสมเหตุสมผลคุณภาพดี การใช้งานจริง ok (เรื่องเยอะนะ) ก็เลยเป็นที่มาของการรีวิว เจ้า Coop Jelly Charger Station ตัวนี้

มาเริ่มกันเลยละกัน



เจ้าตัวนี้มีชื่อว่า Coop Jelly Charger Station
เว็บผู้ผลิตคือ http://www.thecoopidea.com/#!jelly/c1oer
มีอยู่ด้วยกัน 5 สี คือ สีเทา สีฟ้า สีเขียว สีชมภู และสีเหลือง


เรามาดูสีเทากันเลยดีกว่า











ตัวกล่องที่ทำมาไอเดียดีอ่ะ ชอบ

ทำไมถึงต้องใช้ แบบนี้นี่เอง


เปิดกล่องออกมาก็มีตัวของ คู่มือ แล้วก็อากาศจากจีน


เมือแกะที่ชาร์ทออกมาจากปลอกซิลิโคน










ข้างในปลอกซิลิโคน


เวลาใช้ก็ลอดสายออกมาข้างล่างได้เลย เวลาไม่ใช้ก็ยัดสายเก็บเข้าไป สะดวกดีนะ


ทีนี้ก็เข้าเรื่องสำคัญเลยคือ จ่ายไฟแยกตามช่องได้มั้ย ในคู่มือบอกว่าได้(ลืมถ่ายรูปมา)
การจ่ายไฟของทั้ง 4 ช่องคือ

  • Tablet(iPad) 2.1A
  • Phone(iPhone/iPod) 1A
  • Phone(iPhone/iPod) 1A
  • Phone(iPhone/iPod) 1A

ส่วนเรื่องราคา ก็เห็นขายกันราวๆ 69$ usd นะ ตีเป็นเงินไทย ก็คง 2000 ได้ แต่ช่วงนี้(๒๑ เมษายน ๒๕๕๗) มันช่วงนาทีทอง ที่เว็บ lazada (ที่ในพันทิพย์เค้าบ่นๆกันว่ามีปัญหาเยอะไม่ดีนั่นแหละ แต่คนเขียนซื้อมาหลายอย่างก็ไม่เห็นมีปัญหาอะไร) ขายอยู่ 650 บาทไทย!

ก็จบเพียงเท่านี้ละกันนะ ครั้งหน้าเจอกันกับ review mac book pro

วันพฤหัสบดีที่ 17 เมษายน พ.ศ. 2557

5 วันมหัศจรรย์ กับการฝึก iOS ด้วยตัวเอง


5 วันมหัศจรรย์ กับการฝึก iOS ด้วยตัวเอง


เรื่องของเรื่องคือ
  • พอดีว่า มีงานที่ต้องการ iOS app เข้ามา
  • พอดีว่า จำเป็นต้องรับงานนั้น
  • พอดีว่า มีคนช่วยเรื่อง iOS แน่ๆ
  • พอดีว่า กระทรวงการคลังอนุมัติงบฉุกเฉินมาให้
  • พอดีว่า มีช่วงวันหยุดยาวพอดี
  • แต่ ไม่เป็น objective C เลย
  • iOS ไม่ต้องพูดถึงใช้เป็นอย่างเดียว



เลยเกิดสิ่งนี้

และสิ่งนี้




ก็เริ่มตั้งแต่วันที่ 12 จนถึง 16 เมษายน 2557
ความรู้สึกเหมือนสมัยตอนที่หัดเขียน Java ใหม่ๆเลย ตอนนั้นก็พอจะเป็น C/C++ กับ JavaScript อยู่บ้าง ก็อาศัยมั่วบ้าง อ่านจากตำราบ้าง ก็ผ่านมันมาได้

แต่มาตอนนี้เหมือนความกระตือลือล้นจะลดไปบ้าง แต่ก็ยังมีประสพการณ์(อันน้อยนิด) มาช่วยเติมเต็ม บวกกับพลังอำนาจของ google ก็พูดได้เลยว่า ถึงจะยังไม่ชำนาญ แต่ก็พอเข้าใจมันบ้างแล้ว

มาคิดๆดูแล้วยุคนี้นี่มันได้เปรียบจริงๆ ในยุคนั้นเต็มที่ก็กางตำราพร้อมกัน 2 เล่มเพื่อดูเป็นแนวทาง แต่ยุคนี้ ก็ google ไปสิ จะเอาซักกี่ตำราก็ได้ สบายๆ มีตัวอย่างเสร็จสรรพ ถ้าขี้เกียจพิมพ์ตามก็ copy & paste ไปเลย


เอาละหมดเรื่องบ่น ทีนี้เข้าเรื่องสาระละนะ

  • ความรู้ OOP สำคัญมาก
  • เลือก keyword ดี google จะน่ารัก
  • ทุ่มเทให้เกิน 120%
  • มีที่ปรึกษา
ความสำเร็จในครั้งนี้ก็คิดซะว่าเป็นของขวัญวันเกิดให้กับตัวเอง และด้วยการสนับสนุนจากบุคคลสำคัญๆ อย่างเช่น กระทรวงการคลัง(คุณป้า) คณาจารย์ และคุณพ่อ คุณแม่

วันพฤหัสบดีที่ 3 เมษายน พ.ศ. 2557

เหตุเกิดเพราะ Jena หรือ android หรือ andrjena

  • พอดีว่าตอนนี้เรียนวิชา Web Technology
  • พอดีว่าอาจารย์สั่งงานให้ทำ Ontology
  • พอดีว่าตัวอย่างที่อาจารย์มี มันมี PHP กับ Java
  • พอดีว่า PHP ต้องใช้ rdfapi-php ซึางมันตีกับ PHP 5.4.12 ที่ลงอยู่ในเครื่อง
  • พอดีว่า Apache Jena ทำงานบนเครื่องได้

จึงเลือกทำ Ontology บน Java
ซึ่งทำ Demo ง่ายได้แล้ว ให้ชื่อรุ่นว่า Mark 1

  • พอดีว่า ลืมเรื่องการทำ UI(swing) บน Java ไปแล้ว
  • พอดีว่าจะยัด HTML ไปลง Java แบบ Webview ของ Android ต้องใช้ JavaFX
  • พอดีว่าไม่เคยใช้ JavaFX
  • พอดีว่ายัด HTML ไปลง Webview ของ Android เป็น
  • พอดีว่าทำ App Android เป็น

จึงทำการ port code ของ Java ไปเป็น Android แล้วทำส่วน UI เป็น HTML
แต่ Library ของ Jena มีส่วน core ของ Java อยู่ ทำให้เอาไปใช้บน Android ตรงๆไม่ได้
????? แล้วเอายังไงดี ทางเลือกคือ เลิกกับทำต่อ

  • พอดีว่าไม่รู้อะไรดลใจให้ google ว่า jena android โอ้วววววววววววววววววววว มันมีคนทำไว้ด้วย ชื่อว่า androjena พระเจ้าช่วยกล้อยทอดมันฝรั่งต้ม สบายละทีนี้
  • พอดีว่าลองทำแล้ว ok ทำได้ จึงสำเร็จเป็น Mark 2

แต่เหมือนฟ้ากลั่นแกล้ง ทำไมโค้ดแบบเดียวกันมันดันได้ผลไม่ตรงกันฟร่ะ อันนี้ก็ขอยอมแต่เพียงเท่านี้ มันน่าจะเป็นปัญหาที่ Library ที่ port มายังไม่สมบูรณ์ เพราะ ณ วันที่เขียน androjena ยังเป็นเวอร์ชัน 0.5 อยู่เลย......

จบแค่นี้แหละ


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

สรุป
androjena ทำงานได้ แต่ไม่สมบูรณ์มั้งนะ
ทำ App Android ใช้เวลาในการ debug มากกว่าปกติ
eclipse กาก