Wednesday, July 16th, 2008

เมื่อวานกลับบ้านมาประมาณสี่ทุ่ม (เนื่องจากเล่นเกม Ticket to ride อยู่ที่ทำงาน ^^!) ก็มาเจอพัสดุลึกลับจาก Amazon เข้า จริงๆ ก็ไม่ลึกลับเท่าไหร่ เพราะมันคือหนังสือที่สั่งไปตอนต้นเดือน Learning Python นั่นเอง กล่องนี่ดีกว่าเดิมมาก แข็งแรงแน่นหนะ แกะยากกว่าเดิมเยอะเลย แต่ว่าพอเปิดออกมาแล้ว หนังสือยับเยินนิดๆ อ่ะ เล่มก่อนๆ ไม่เป็นนะ ไม่รู้ทำไม ลองดูสภาพด้านล่างละกัน

อันนี้ภาพเต็มๆ

สภาพขอบๆ ที่เยินนิดๆ แต่ก็ไม่เป็นไรเพราะยังไงมันก็ต้องเยินภายหลังอยู่แล้ว แต่แค่สงสัย กล่องมันสภาพดีกว่าคราวที่แล้วมากๆ ทำไมของด้านในมันกลับแย่ลงหว่า -_-”
ส่วนสองอันล่างนี่ของเล่นที่จะเอาไปที่เกาะด้วย ^^!

Friday, June 6th, 2008

ช่วงนี้เขียนสามภาษามึนๆ เลยเขียนถึงซักหน่อย ทั้งสามภาษาจะบอกว่าแตกต่างกันอย่างสิ้นเชิงก็ได้ เริ่มจาก Java ที่มีโครงสร้างและข้อกำหนดต่างๆ มากมาย เรียกว่า ข้อผิดพลาดต่างๆ สามารถหาได้จากตอน Compile แทบทั้งหมด แม้ว่าตัวภาษาจะไม่สวยงามมากนัก เยิ่นเย้อนิดหน่อย (ก็ไม่หน่อยนะ จริงๆ ก็ขึ้นอยู่กับว่าคนออกแบบ คนเขียนนั่นแหละ) มีสัญลักษณ์ต่างๆ มากมาย (จริงอันนี้มันก็พอกันทั้งสามภาษานั่นแหละ) แต่ก็มีของเล่นต่างๆ ให้มากมายด้วยเช่นกัน (แต่อันนี้เป็นผลดีมาจากการที่ Java อยู่มานาน)
สำหรับ Actionscript โครงสร้างภาษาต่างๆ มีลักษณะเหมือนทั้ง Java และ Python รวมกัน คือพวกขอบเขตของตัวแปร หรือ ฟังก์ชั่น อะไรก็ตามพวกนี้จะมีลักษณะเหมือน Java แต่พวก Object ต่างๆ จะคล้ายๆ กับ Python มากกว่า เลยไม่รู้จะบอกว่ามันง่ายหรือยากดี มันกึ่งๆอ่ะ คือ ทำมาให้หลายๆ อย่างสามารถตรวจสอบตั้งแต่ตอน Compile ได้ แต่ก็มีหลายอย่างที่ต้องกำหนดกันเอง เช่น Object นี้จะมี Property อะไรแล้วจะใช้เพื่ออะไรกันบ้าง
Python เป็นภาษาที่พึ่งเล่นเร็วๆ นี้ ตัวภาษามีข้อกำหนดน้อยมาก (ลองเทียบกับภาษาที่ใช้โครงสร้างต่างๆ แบบภาษาซีดู) ทำให้ข้อกำหนดต่างๆ ที่ต้องทำตามก็น้อยลงไปด้วย แต่สิ่งหนึ่งที่ชอบสำหรับภาษานี้มาก ยกเอามาจากที่ @sugree เขียนไว้ที่ codenone เลยละกัน

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

อืม นั่นแหละ ไม่ต้องมานั่งปวดหัวเถียงกับคนอื่นด้วยว่าจะใช้ IDE อะไรดี แต่พอเอาไปให้เพื่อนใช้ เพื่อนหามาให้ก่อนเลยว่าจะเอา IDE นี้มาใช้นะ - -” แทบหงายหลัง ถ้าให้แนะนำหละก็ Eclipse โลด เห้อ

หมดและภาษาที่เขียนช่วงนี้ จริงๆ ยังมีภาษาอื่นอีกเช่น PHP, Objective-C, Ruby, C (ไม่มี C++ เพราะว่าไม่ถนัดแต่ให้เขียนก็ยังได้อยู่) แต่ก็ไม่จริงจังเท่าสามภาษาด้านบนที่เป็นงานหลัก ถ้าตามดูในเนท ก็จะเจออีกหลายภาษามากมายนัก ซึ่งมีทั้งข้อดีข้อเสียแตกต่างกันไปเต็มไปหมด จะลองใช้เท่าไหร่ก็ไม่หมดซักที ใครจะเลือกภาษาอะไรก็ดูจากงานแทนละกัน ว่าอันไหนมันจะทำให้เสร็จเร็วและมีประสิทธิภาพที่ยอมรับได้ มากกว่ากัน

Saturday, May 24th, 2008

อันนี้มันอดไม่ได้ที่จะเขียนเลยขอซักหน่อยละกันเกี่ยวกับ technical

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

ปกติหลังจากเรียก include/import/require/… อะไรก็ตามที่ไว้เชื่อม code ไฟล์สองไฟล์เข้าด้วยกัน เวลาจะเรียก code เราจะเรียกได้ตรงๆ เลย แต่สำหรับ python แล้วมันต่างออกไปนิดนึง นั่นคือ หลังจาก import จะถือว่า ไฟล์นั้นรู้ว่ามี module ที่ import เข้ามาอยู่แต่ถ้าจะเรียก ต้องเรียกตาม path ทั้งหมดไม่ได้เรียกแค่ชื่อ function หรือ class เหมือนภาษาอื่นๆ เช่น

ไฟล์ package/sub-package/a.py


class Hello:
     def roll(self):
          print "hello"

ไฟล์ package/b.py


import package.sub-package.a

a = package.sub-package.a.Hello()
a.roll()

แต่จะให้เรียกแค่ Hello() เหมือนภาษาอื่นๆ ก็ทำได้เหมือนกันคือ


from package.sub-package.a import Hello

a = Hello()
a.roll()

ซึ่งก็ยังงงๆ ว่าทำไม python ต้องทำ import ไว้สองแบบ จริงๆ ยังมีอีกเรื่อง แต่อันนั้นไว้แยกเขียนอีกวันละกัน ;p เดี๊ยวไม่มีอะไรจะเขียน