Tag Archives | Javascript

Crypto-JS & Node.js Crypto

นั่งงมอยู่หลายวันเรื่อง AES encryption ใน Javascript เนื่องจากหาข้อมูลที่เขียนอธิบายตรงๆ ไม่ได้เลย ทำได้แล้วก็จดเก็บไว้หน่อยดีกว่า เริ่มจากฝั่ง Browser ที่ต้องพึ่ง Crypto-JS เป็นชุด Library สำหรับใช้ในการเข้ารหัสหรือทำ Hash ต่างๆ สิ่งที่เอามาใช้วันนี้คือ AES ที่เป็นการเข้ารหัสที่ใช้กุญแจเหมือนกันทั้งสองฝั่ง วิธีใช้ก็ง่ายๆ มีอยู่ในเว็บคนทำอยู่แล้ว แต่ถ้าทำแค่นี้แล้วใช้กับ Node.js ได้ก็คงไม่ต้องมาจดแล้ว ปัญหามันเกิดตรงที่ถ้าเราใส่ “Secret Passphase” ไปตรงๆ สิ่งที่เกิดขึ้นคือมันจะ random IV (Initialization vector) ให้อัตโนมัติแล้วเอาไปใช้คู่กับ passphase ที่ใส่เข้ามา ทำให้ passphase ไม่สามารถเอาไปใช้กับ Node.js crypto ได้ ก็เลยต้องระบุเป็น Key และ IV ไป แต่ Key ที่ว่ามันก็ไม่ได้มาง่ายๆ อีกเนื่องจากความยาวต้องเท่ากับ 16, 24, 32 [...]

Read full story Comments { 0 }

HTML5 Drag&Drop

เมื่อคืนช่วงที่เขียนเรื่อง IAAS/PAAS จริงๆ มีเรื่องนี้อยู่ในหัวด้วย มันมาตั้งแต่ตอนทำ Scrumboard ให้ลาก Task ได้แต่ไม่มีเวลารวบรวมซักที ช่วงเช้ายังว่างๆ ไม่มีใครมาเลยจดไว้ก่อนละกัน วิธีการใช้งาน HTML5 Drag&Drop แทบจะเหมือน Flex เป๊ะชื่อฟังก์ชั่นหรือ event นี่ลอกมาแทบจะไม่ต่าง (หรือจริงๆ Adobe อาจจะเป็นคนผลักมันออกมาเป็น Standard) Event พื้นฐานก็มี (@plutoniix แย้งมาตาม comment ว่ามาจาก MS ต่างหาก) dragstart: ใช้กับ DOM ที่จะลากเพื่อบอกว่า DOM นี้มีคนกดลากแล้วนะ dragend: ใช้กับ DOM ที่ลากไปมาได้เหมือน dragstart เกิดเมื่อตอนปล่อยเม้าส์จาก DOM ที่ลากไปมา dragover: ใช้กับ DOM ที่จะเป็นตัวรับ DOM ที่ลากไปมา เกิดตอน DOM อื่นถูกลากมาเหนือ DOM [...]

Read full story Comments { 1 }

TestIt Suite Runner

TestIt มีปัญหาอย่างนึงที่ยังแก้ไม่ได้คือ เมื่อเอาหลายๆ test มารันด้วยกันพร้อมกันบางครั้งทำให้ test ที่เคยทำงานผ่านกลับไม่ผ่าน เวลาเรียกรวมเลยต้องแยก test เหล่านั้นออกแต่ด้วยความขี้เกียจยังคงอยากเรียกที่เดียวแล้วเห็นผลลัพธ์ทั้งหมด เลยเขียน script เล็กๆเพื่อมาเรียกพวกนั้นรวมทีนึง เวลาใช้ก็เพียงแค่ แต่ยังมี config อีกเล็กน้อย ต้องสร้าง suite.js (หรือจะชื่ออะไรก็แล้วแต่) เป็นไฟล์ที่บอกว่าจะเรียก test ไหนให้ทำงานร่วมกันบ้าง หน้าตาก็อย่างด้านล่าง สุดท้ายแล้ว เอา suite ไปเพิ่มในไฟล์ด้านล่าง (ไว้แยกออกมาและทำงานได้บน Browser ทีหลังละกัน) save file ด้านบนเอาไปเรียกใช้ตามสะดวก วิธีเรียกก็มี node suite.js all ที่จะเห็นผลลัพธ์แบบละเอียด (แสดงแต่ละ test ว่าอะไรผ่านไม่ผ่านบ้าง) node suite.js summary เพื่อดูแค่ว่ามี suite ไหนผ่านไม่ผ่านบ้าง node suite.js suite เพื่อเรียกเฉพาะ suite ที่ต้องการ สิ่งที่ยังไม่ได้ทำ [...]

Read full story Comments { 0 }

TestIt

หลังจากเริ่มจัดการ Dev Process จริงจังสิ่งหนึ่งที่เป็นปัญหาต้ังแต่เข้าไปในทีมคือ unit test เพราะไม่มีใครเคยทำมาก่อนในฝั่ง Javascript มีบ้างก็เป็นการทดลองรวมๆ มากกว่า เวลาจะเรียกทีต้อง start server เรียกได้แทบฝันร้าย เรียกแล้วผ่านไม่ผ่าน ไม่มี format ตายตัวรันที Terminal เต็มไปด้วย Text วันแรกๆ เลยทดลองหา Test framework ที่ถูกใจ ใช้ง่าย ใช้ได้ทั้ง client server ก่อนเลย รอบแลกคิดว่าจะใช้ nodeunit เพราะว่าสามารถใช้ node.js มีผลลัพธ์ให้เห็นสวยงาม แต่พอเอาไปใช้กับ test เก่าที่บางส่วนต้องเรียกบน browser เริ่มเห็นลางร้ายเพราะต้องแยก code test ดีๆ ให้ทำงานบน browser หาอยู่หนึ่งวันยอมแพ้ หาตัวเลือกอื่นก็เปิด wiki หาว่า Javascript มี Test framework อะไรใช้ได้บ้างก่อนเลย [...]

Read full story Comments { 0 }

JS Function & Flash #Adobe Flex

วันอาทิตย์ที่ผ่านมาทำงานกับเพื่อนแล้วต้องเขียนสองอย่างนี้คู่กัน มีทั้งเรียกจาก JS ไปยัง Flash และจาก Flash กลับไปยัง JS ได้ประสบการณ์มาพอสมควรเลย ดูด้านล่างเป็นข้อ ๆ เลยละกัน จากหน้าเว็บ HTML สามารถส่งข้อมูลไปยัง Flash ผ่าน embed และ object ได้เลย ผ่าน embed flashvar และ attribute flashvar ใน object ต้องกำหนดทั้งสองที่เพื่อให้ใช้ได้ทุก Browser เช่น จากด้านบนบรรทัดที่ 3 กับ 6 จะมี flashVar ซ้ำกัน ใส่เหมือนกับที่อยู่หลัง URL เวลา request แล้วส่งค่าข้ามไปมา นอกจากวิธีกำหนด flashVar แบบนี้แล้ว จะกำนหดใน src เลยก็ได้เช่น wmode มีด้วยกันสามค่าคือ window, opaque, [...]

Read full story Comments { 0 }