วันนี้ทำงานแล้วเจอเรื่องนี้ติดต่อกันเลยคันไม้คันมือจดไว้หน่อยดีกว่า ใน Flex มี for ให้ใช้อยู่สองแบบคือ แบบที่เห็นในภาษาซีทั่วไป for( initial, condition, post operation) กับแบบที่เป็น iterator เหมือนของ php หรือ python คือ for … ( received in list ) แต่แบบแรกคิดว่าคงเป็นกันหมดแล้ว ไม่เขียนถึงละกัน แต่แบบหลังนี่สิ ที่น่าเล่นเพราะมันดันใช้ได้อีกสองแบบ เพื่อเอาค่าออกจาก list ในภาษา php เวลาใช้ for-in เพื่อเอาค่าออกมาสามารถกำหนดไปได้เลยว่า ตัวแปรไหนจะใช้เพื่อรับ key ตัวแปรไหนจะใช้สำหรับรับ value เช่น $dictionary = array(“pFz” => 80, “llun” => 23, “sourcode” => 25); foreach ($dictionary [...]
About llun
Just a programmermeasure()
คราวที่แล้วเขียนไปแค่สี่ขั้นตอน แต่ถ้าใครลองโหลดไฟล์ที่ @iporsut แนบมาใน comment คงเห็นรายละเอียดที่มากกว่านั้นเยอะแยะเลย แต่ผมก็ได้แค่อ่านผ่านๆ นะ ยังไม่ได้ดูละเอียดเท่าไหร่ แหะๆ แต่วันนี้จะมาเขียนถึงขั้นลึกลับอีกขั้นนึงนั่นคือ measure() เพราะต้องใช้มันเข้าพอดี -_-” ปกติฟังก์ชั่นนี้จะไม่ค่อยต้องเขียนเองเท่าไหร่เพราะหน้าที่ของมันคือใช้บอกว่า component เรามีขนาดเท่าไหร่ แล้วให้ขั้นถัดไปคือ updateDisplayList เป็นคนวาด ซึ่งวิธีทำปกตินั้นก็ง่ายแสนง่ายคือเรียก component ลูกให้วัดค่าออกมาให้ แล้วก็จับมันบวกๆ ลบๆ กันแล้วส่งออกไป แต่มีปัญหากับผมอีกและ -_-” เพราะว่าถ้าหากเราตั้งขนาดของ component ลูกเป็น % แล้วหละก็มันก็มีบางอย่างที่คำนวนออกมาให้พลาดเหมือนกัน(จริงๆ ก็ไม่พลาดหรอกแต่ผลลัพธ์ที่ต้องการมันไม่ไช่อย่างนั้นหนะ) เช่น List ลองมาดูโจทย์ผมละกัน โจทย์ก็แสนจะง่ายดาย มี List ย่อยๆ หลายๆ List ที่แต่ละ List มีข้อมูลไม่เท่ากัน โดยต้องเอา List เหล่านั้นมารวมกันให้เป็น List ใหญ่ๆ ก้อนนึง อ๊ะ เหมือนธรรมดา ยังไม่หมดๆ [...]
หน่วยความจำ
พักหลังๆ รู้สึกสมองตัวเองชักเหมือนหน่วยความจำในคอมพิวเตอร์ไปทุกทีๆ มีแรม มีฮาร์ดดิสก์ กับหน่วยความจำสำรองๆ ต่างๆ ไว้คล้ายๆ กันคือพอฟังเรื่องอะไรเข้ามาหรือเห็นอะไรมันก็จะอยู่ในแรมชั่วคราว แต่ถ้ามีอะไรผ่านเข้ามาเร็วเกินก็จะเกิดอาการสองอย่างคือ ไม่ลิมไปเลย ก็ต้องมานั่งนึกย้อนนิดนึงเหมือนดึงมาจากฮาร์ดดิสก์ว่าเมื่อกี้คิดอะไรอยู่ จะว่าไปก็ไม่รู้ว่าคนเรานี่มีแรม กับฮาร์ดดิสก์อยู่ในหัวคนละเท่าไหร่นะ คิดว่าคงไม่เท่ากันทุกคนแน่นอน บางคนอาจจะมีแรมเยอะ บางคนอาจจะมีฮาร์ดดิสก์เยอะ ตรงนี้ก็ไม่เท่ากันอีก แต่คิดว่าคงมีความสามารถในการขยายพื้นที่ทั้งสองเหมือนกัน เพราะคนเราสามารถจำอะไรๆ ได้เพิ่มขึ้นตลอดเลย ถ้าคอมพิวเตอร์สามารถขยายหน่วยความจำขึ้นเองแบบสมองคนได้บ้างก็ดีสิ จะได้ไม่ต้องคอยอัพเกรด เอ๊ะ หรือต่อไปอาจจะมีคนคิดขึ้นมา หน่วยความจำแบบขยายตัวเอง หึหึหึ โดยเขียนโปรแกรมไว้หากอยากได้ พื้นที่ส่วนไหนเพิ่มก็ต้องกดลิงค์จ่ายเงินผ่านหน้าเว็บแล้วรันโปรแกรมเอา จากนั้นตัวหน่วยความจำก็แบ่งส่วนเก็บข้อมูลแบบเซลล์ เพื่อเก็บข้อมูลเพิ่ม เอิ๊ก ชักเพ้อแฮะ เอาเป็นว่าจบเอนทรี่ไร้สาระคั่นรายการระหว่างขี้เกียจเขียนเรื่อง Flex ต่อไว้แค่นี้ดีกว่า ฮะๆๆ เดี๊ยวมันจะมีอะไรแปลกๆ ลอยเข้ามาในหัวแบบผ่านๆ อีก ปอลอ. ช่วงนี้รู้สึกอีกอย่างว่า ยิ่งทำงานเขียนโปรแกรมมากเท่าไหร่ ยิ่งรู้สึกโปรแกรมที่เขียนที่ใช้มันซดแรมเพิ่มขึ้นไปเรื่อยๆ ยังไงไม่รู้ ที่จริงมันน่าจะซดน้อยลงหรือคงที่นี่นา บ๊ะ คงต้องเรียนรู้อีกยาว
สแปม
อาทิตย์นี้ทั้งอาทิตย์บล๊อกเจอสแปมเยอะมาก ไม่รู้เพราะอะไร แต่ละอันก็ส่งมาเหมือนกันเป๊ะๆ โดน Akismet ดักเก็บได้หมดแต่ก็รู้สึกรำคาญนิดๆ เพราะต้องมานั่งคอยกดลบทั้งหมด เรื่อยๆ วันแรกเห็นส่งมากดลบไปก็คิดว่ามันคงเลิกพยายามแล้วมั้ง เปิดมาวันที่สองกลับเจออีก เอาวะ สองวันคงไม่เท่าไหร่ วันที่สาม สี่นี่ เริ่มตะหงิดๆ พอมาวันนี้เริ่มเกิดอาการเซ็ง เพราะว่ามันเริ่มหลุดรอดออกไปให้กดยืนยัน แล้ว คราวหน้าก็เลยกะว่าจะรวบรวมทั้งอาทิตย์เลย แล้วกดลบทีเดียวละกัน ใครที่กดบ่น แล้วไม่เห็นขึ้นข้อความออกมาก็ไม่ต้องตกใจแล้วกดซ้ำนะครับ มันคงอยู่ในคิว นั้นแหละ วันสองวันเดี๊ยวค่อยมาเคลียร์ทีนึง จะว่าไปเรื่องสแปม นี่ก็ไม่ได้เจอแค่บล๊อกนะ เมล์ก็เจอ แถมที่ทำงานผมก็ทำงานเกี่ยวกับระบบเมล์ซะด้วยเลยต้องนั่งหาวิธีกันให้มากมาย เคยฟังๆ มาก็หลายวิธี (ไม่กล้าเข้าไปยุ่งเดี๊ยวงานเข้า ฮะๆๆ มีพี่ทำอยู่แล้วให้พี่ทำเกี่ยวกับระบบสแปม ต่อไปละกัน) แต่ก็ยังเห็นว่ามันยังหลุดมาได้อีก แต่ที่ทำให้ผมสงสัยคือ มันกันได้ทันได้ยังไงสแปม แต่ละวันก็ไช่จะน้อยๆ แต่ระบบกรองนี่ล่อไปสามสี่ชั้น สงสัยผู้ใช้จะยังไม่มากพอ หรือไม่ก็เพราะเป็นเมล์ในองค์กรณ์มั้งเลยไม่ค่อยมีใครเอาไปใช้ในชีวิตประจำวัน เพื่อสมัครอะไรเล่นกันเท่าไหร่ เลยยังไม่ค่อยเยอะ เห้อ คิดแล้วเหนื่อย เล่นพวก Flex สร้าง component ทำเว็บต่อดีกว่า
Flex validator
พักหลังต้องเก็บรายละเอียดงาน ช่วงนี้ก็เลยมีทั้งแก้ไขโค้ดเก่าๆ ให้ทำงานเร็วขึ้น จากแต่ก่อนที่พอให้ทำงานได้ แล้วก็เก็บพวกฟอร์มต่างๆที่ใส่ตัวตรวจสอบก่อนที่จะส่งไปยังเซิร์ฟเวอร์ เพื่อไม่ให้ทำงานผิดพลาด (จริงๆก็ต้องใส่ทั้งสองฝั่งอะแหละ แต่ผมก็ทำทั้งสองฝั่งอ่ะนะ – -”) คราวนี้ก็เลยเขียนถึง Validator ใน Flex ซะหน่อย ปกติแล้วเวลาจะใส่อะไรไปยัง Component อื่นก็จะจับมันยัดเข้าไปใต้ Tag ของ Component นั้นแต่ Validator เวลาใส่กลับต้องอยู่ด้านนอกสุดและไม่อยู่ใต้ Tag อะไร โดยจะมี property พื้นฐานบางอย่างที่มีเหมือนกันคือ source: คือตัวแปรที่จะเอาไว้ตรวจสอบ อาจจะเป็น object ทั้งก้อนเลยก็ได้ property: ประเภทของ form ว่ารับมาเป็นอะไร ส่วนใหญ่แล้วจะเป็น text trigger: component ที่รอรับเหตุการณ์เตรียมตรวจสอบ triggerEvent: เมื่อเกิดเหตุการณ์ที่กำหนดใน property นี้จาก component ที่กำหนดใน trigger แล้วจะทำการตรวจสอบ เช่น RegExpValidator อันนี้คือผมไว้สำหรับตรวจว่า input [...]