Archive for the 'Labs' Category

Flex CD-Rom SWF distribution security settings
Sunday, December 16th, 2007

Recently I have been coding in Flash and Flex and have been using a lot of ActionScript lately. I have just been contracted by a pharmaceutical company to do a flash menu and video player for videos recorded in their recent forum event. All the development and testing went fine until I tried to to [...]

ActionScript 3.0 Lab: Game Of Life
Sunday, November 11th, 2007

Latest Version: 1.0
Last Update: November 11, 2007 5:02 PM (GMT+7)
เพิ่งได้หนังสือ ActionScript 3.0 กับ Flex Builder 2 ซึ่งเป็น IDE ที่พัฒนามาจาก Eclipse มาเล่น วันนี้ก็เลยนั่งอ่านไป ทดลองไปเพื่อจะได้จำได้ ซึ่งจากที่ประมาณดูแล้ว น่าจะใช้เขียน MemorialCD ทั้งชุดได้เลยโดยไม่ต้องพึ่ง .NET Backend วันนี้อ่านถึงเรื่อง BitmapData แล้วก็เลยอยากลองเล่นอะไรกับมันหน่อย แต่ก็ไม่รู้ว่าจะเอาอะไรมาลองดี จะทำ Image Processing ก็ขี้เกียจหารูปมาทดลอง ก็เลยเขียน Conway’s Game of Life มาลองแทน เขียนง่ายกว่าเยอะ แล้วได้ใช้ BitmapData ผูกกับ User Interface ด้วย

VMSim
Tuesday, September 11th, 2007

Latest Version: 1.1
Last Update: September 15, 2007 3:22 AM (GMT+7)
VMSim เป็นโปรแกรมจำลองวิธีการสลับ Virtual Memory Page โดยใช้วิธีการต่างๆ ที่มีในปัจจุบันครับ เขียนส่งวิชา Operating Systems ซึ่งถ้าเกิดว่าอยากจะเอาไปใช้ศึกษาก็ดาวน์โหลดไปลองดูได้ครับ หรือว่าถ้าเกิดว่าอยากจะเอาไปทดลอง Algorithm ที่เขียนขึ้นเองก็ได้ครับ ผมแบ่งระบบ Class ไว้ให้สามารถขยายได้พอสมควรอยู่แล้วครับ

Algorithm Design lab 4: Alternative sorting
Wednesday, July 11th, 2007

แลปคราวนี้เป็นเรื่องของการเรียงข้อมูลเหมือนครั้งที่แล้ว แต่ว่าคราวนี้ใช้วิธีการที่ค่อนข้างเร็วกว่า อันได้แก่ Radix Sort, Bucket Sort, Counting Sort และ Merge Sort
การเรียงข้อมูลคราวนี้ น่าจะเรียกได้ว่าเป็นวิธีที่แหวกแนว แต่พอคิดถึงคำนี้แล้ว ขั้นตอนวิธีทางคอมพิวเตอร์ส่วนใหญ่มันก็แหวกแนวเกือบทั้งนั้น ไม่งั้นคงจะไม่ได้ประสิทธิภาพเร็วขนาดที่ใช้กันอยู่ได้ทุกๆ วันนี้ แต่ว่าคราวนี้มันต้องเรียกว่าแหวกแนวจริงๆ คือแหวกแนวตรงที่มันค่อนข้างเฉพาะเจาะจงกับสิ่งที่เรียง อย่างเช่นว่าต้องเรียกตัวเลขจำนวนเต็มเท่านั้น หรือถ้าเป็นทศนิยม ก็ต้องมีหลักจำกัด ประสิทธิภาพคงจะลดลงเยอะถ้าเกิดว่าเอาไปใช้เรียงเลขทางวิทยาศาสตร์ ที่มักจะมีทศนิยมเกินสิบตำแหน่ง เนื่องด้วยความต้องการความแม่นยำสูง
แต่จริงๆ แล้ววิธีการแหวกแนวพวกนี้มันเข้าใจง่ายกว่าวิธีที่ผ่านๆ มามาก และหลายๆ วิธีก็เขียนง่ายกว่าด้วย ตัวอย่างเช่น Heap Sort กับ Counting Sort ความซับซ้อนในการ Implement นี่ต่างกันลิบลับ ยิ่งถ้ารวมเวลาในการ Debug ไปด้วยแล้วนี่ยิ่งเยอะเลย แต่มันก็มีข้อเสียอย่างที่บอกนั่นแหล่ะนะ คือมันค่อนข้างเฉพาะเจาะจงกับลักษณะของข้อมูล ก็เลยเค้นประสิทธิภาพออกมาได้มากกว่าวิธีที่ไม่เฉพาะเจาะจง
ความสามารถส่วนหนึ่งที่นักเรียนวิทยาการคอมพิวเตอร์ที่ควรจะมีนั้น คือการนำเอาวิธีการพวกนี้ไปประยุกต์ใช้ วิธีการอย่างของ Lab ที่แล้วนั้นมันเป็นวิธีที่ไม่เฉพาะเจาะจง คือเรียกว่าเอาไปเรียงอะไรก็ได้ ตั้งแต่สากเบือยันเรือรบ ขอเพียงแค่มีวิธีเปรียบเทียบสิ่งของสองอย่างมาให้ เป็นอันใช้ได้ แต่ของคราวนี้นี่ค่อนข้างเฉพาะเจาะจง ว่าต้องเป็นตัวเลข หรืออยู่ในรูปแบบที่วัดออกมาเป็นตัวเลขในแต่ละหลักได้ [...]

Algorithm Design lab 3: Sorting
Monday, July 2nd, 2007

จริงๆ แล้วเื่รื่อง Sorting นี่ เขียนแล้วเขียนอีกไม่รู้กี่ร้อยครั้งแล้ว ไปค่ายก็เขียนทุกวัน เรียนวิชาคอมพิวเตอร์ ก็สอนกันเกือบทุกตัว อย่างน้อยต้องมี Sorting เล็กๆ น้อยๆ ปนมาล่ะ เขียนจนแทบจะท่องจำโค้ดได้แล้ว
วันนี้อาจารย์ให้โจทย์มา 3 ข้อ คือให้เขียน Insertion Sort Quick Sort แล้วก็ Heap Sort ตามลำดับ จำได้เลยว่านั่งเขียน Heap Sort ที่ค่ายอยู่นานมาก แต่ไม่ได้นานเพราะ Bug หรืออะไรนะครับ แต่นานเพราะว่าพยายามสร้าง Heap แบบไม่ใช้ Array คือใช้โครงสร้างแบบ Tree ที่ใช้ Pointer เชื่อมกันจริงๆ เลย แต่ว่าก็ทำไปได้ไม่กี่น้ำ เพราะซับซ้อนเกิน แต่ทำอยู่ทั้งวันก็เลยจำได้สนิท
วิธีที่เราใช้ในโค้ด ไม่ได้เอามาจากอาจารย์โดยตรง อาจจะมีผิดแผกไปบ้าง แต่ว่าประสิทธิภาพพอๆ กันแน่นอน ถ้าอยากรู้ว่าในโค้ดเราใช้วิธีไหนก็คลิกลิงค์ย่อหน้าข้างบนดู
เปลี่ยนวิธีแปะใหม่ดีกว่า เผื่อคนอื่นจะเข้ามาอ่านด้วย ถ้าเกิดว่าอยากได้โค้ดก็ดาวน์โหลดไปดูเอา เพราะว่าแปะไว้แล้วลำบากหลายต่อ เพราะกว่าจะแปะได้ ต้องเอามาต่อกันให้เป็นไฟล์เดียวก่อน [...]