ไม่ได้เขียนนานเนื่องจากความขี้เกียจ – -” เลยทิ้งมันไว้ซะนานขนาดนี้ วันนี้ก็เป็นโอกาสดีที่ว่าง ก็เลยทำต่อซะหน่อยก่อนจะขี้เกียจอีก ฮะๆๆ (วันนี้อาจเขียนอะไรเมินๆ แต่ถ้ามีเวลามากกว่านี้จะมานั่งเกลาภาษาอีกที >< “) Primitive และ Reference Values ใน ECMAScript ตัวแปรสามารถเก็บข้อมูลได้สองแบบคือแบบ Primitive กับ Reverence Primitive คือ ข้อมูลพื้นฐานต่างๆ ได้แก่ Undefined, Null, Boolean, String และ Numberโดยจะเก็บอยู่ใน Stack และสามารถเข้าถึงผ่านชื่อตัวแปรได้โดยตรง Reference คือ ข้อมูลที่ถูกเก็บไว้ใน Heap โดยตัวแปรจะเก็บเพียงแค่ตำแหน่งของวัตถุก้อนนั้นเท่านั้น เมื่อมีการกำหนดค่าให้กับตัวแปร ตัวแปลง ECMAScript ก็จะเอาค่ามาดูว่าเป็นประเภทใดระหว่าง Primitive หรือ Reference ถ้าเป็น Primitive ก็จะเอาไปเก็บไว้ใน Stack ที่ทำอย่างนี้เพราะว่าตัวแปรแบบ Primitive จะมีขนาดที่คงที่ ทำให้รู้ได้ว่าจะใช้พื้นที่เท่าไหร่ใน Stack เมื่อคำนวนแล้วนำไปเก็บใน [...]
Java, Actionscript, Python
ช่วงนี้เขียนสามภาษามึนๆ เลยเขียนถึงซักหน่อย ทั้งสามภาษาจะบอกว่าแตกต่างกันอย่างสิ้นเชิงก็ได้ เริ่มจาก Java ที่มีโครงสร้างและข้อกำหนดต่างๆ มากมาย เรียกว่า ข้อผิดพลาดต่างๆ สามารถหาได้จากตอน Compile แทบทั้งหมด แม้ว่าตัวภาษาจะไม่สวยงามมากนัก เยิ่นเย้อนิดหน่อย (ก็ไม่หน่อยนะ จริงๆ ก็ขึ้นอยู่กับว่าคนออกแบบ คนเขียนนั่นแหละ) มีสัญลักษณ์ต่างๆ มากมาย (จริงอันนี้มันก็พอกันทั้งสามภาษานั่นแหละ) แต่ก็มีของเล่นต่างๆ ให้มากมายด้วยเช่นกัน (แต่อันนี้เป็นผลดีมาจากการที่ Java อยู่มานาน) สำหรับ Actionscript โครงสร้างภาษาต่างๆ มีลักษณะเหมือนทั้ง Java และ Python รวมกัน คือพวกขอบเขตของตัวแปร หรือ ฟังก์ชั่น อะไรก็ตามพวกนี้จะมีลักษณะเหมือน Java แต่พวก Object ต่างๆ จะคล้ายๆ กับ Python มากกว่า เลยไม่รู้จะบอกว่ามันง่ายหรือยากดี มันกึ่งๆอ่ะ คือ ทำมาให้หลายๆ อย่างสามารถตรวจสอบตั้งแต่ตอน Compile ได้ แต่ก็มีหลายอย่างที่ต้องกำหนดกันเอง เช่น [...]
Flex runtime localization
นึกชื่อไทยไม่ออกแฮะว่าจะเขียนเป็นหัวข้อภาษาไทยยังไง จริงๆแล้วก็แค่จะเปลี่ยนภาษาขณะที่รันโปรแกรมไปแล้วนั่นแหละ คิดว่าพึ่งมีใน Flex3 เพราะค้นใน google ก็เจอแต่เอกสารของ Flex3 แฮะถ้าเป็น Flex2 คนต้องใช้วิธีดิบเถื่อนนิดหน่อย ^^! อย่างแรกที่ต้องทำเพื่อให้ compile flex กับภาษาอื่นๆ ได้คือต้อง copylocale ก่อนโดย flex เตรียม locale พื้นฐานให้สองภาษาคือ อังกฤษ(อังกฤษแบบอเมริกาด้วย แต่มันจะต่างจาก อังกฤษอื่นๆ ยังไงฟะ) กับ ญี่ปุ่น ซึ่งก็ไม่รู้ copy แล้วมันจะต่างกันยังไงอีกนั่นแหละ – -” โดยจากตอนก่อนนู้นๆ จำได้ว่าเคยแนะนำโปรแกรมต่างๆ ใน /bin ของ sdk ไปบ้างแล้วโปรแกรมหนึ่งก็คือ copylocale โดยมีทั้งสำหรับ windows และ linux/unix ของ windows ก็จะมี .exe ตามท้าย จากการทำงานแล้ว จริงๆ มันก็เหมือนกับ copy [...]
import ใน python
อันนี้มันอดไม่ได้ที่จะเขียนเลยขอซักหน่อยละกันเกี่ยวกับ 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 [...]
replaceAll กับ "\"
เมื่อวานเจอบั๊กเล็กๆ เกี่ยวกับ platform คือบน linux ก็ปกติดีไม่มีปัญหาอะไร แต่พอเปลี่ยนไปใช้บน windows ปุ๊บก็เจอ error ทันที คุยกับ deans4j ใน twitter ได้ข้อสรุปว่าเหตุผลมาจาก argument ตัวแรกของ method replaceAll ที่เป็น regular expression แล้ว argument ตัวที่สองดันเป็น “\” ซะนี่ ซึ่งมีพฤติกรรมพิเศษกับ regular expression (คุยในนั้น deans4j บอกว่ามีอีกตัวคือ “$” ใช่ป่าวหว่า) สำหรับวิธีแก้ก็คือ แทนที่จะใส่ argument หลังแค่ “\\” ก็ใส่เป็น “\\\\” แทน แต่ว่าผมจะใช้กับตัวแปรอื่นที่มีอยู่แล้วในจาวานั่นคือ File.separetor จะให้แก้ว่าเฉพาะ windows ให้ใช้ “\\\\” แทนก็ยังไงอยู่ เลยเปลี่ยนไปใช้อีก method นั่นคือ replace [...]