ตอนแรกกะว่าจะเขียนวันเดียวกับเรื่อง Tree แต่ด้วยความขี้เกียจบวกกับเมื่อวานกะทำงานหลายๆ อย่างให้เสร็จเลยไม่ได้เขียน ยกยอดมาเขียนวันนี้แทน เรื่องนี้เป็นเรื่องที่สองที่ได้จากการทำ FeedReader แล้วทำให้รู้ว่า Flex มันไม่สามารถหาวิธีทำได้จากคู่มือที่มีให้ในเว็บ Adobe ต้องใช้ความสามารถในการใส่ keyword ให้ google เข้าช่วยอย่างมาก เรื่อง ของเรื่องก็คือ xml ที่ Google ส่งมาใน Google Reader มีการใช้ namespace อยู่สามตัวในการแบ่ง tag ต่างๆคราวนี้พอได้รับข้อมูลมาแล้วจะเอามาอ่านใส่ตัวแปรโดยไม่มีการกำหนด namespace ให้มันปรากฏว่า Flex มันก็จะอ่านข้อมูลตัวนั้นออกมาเป็นตัวแปรแบบปกติไม่ได้เช่น Google Reader tag:google.com,2005:reader/user/10757961596074723521/state/com.google/reading-list CLv69f7_nZUC แนท 2008-08-21T08:07:03Z tag:google.com,2005:reader/item/8c96bd9a8e5c1cb5 …. ขี้เกียจเอามาหมดยาว จะเห็นว่าแท๊กพิเศษอยู่เช่น gr:…. แต่อย่างไรก็ตามด้านบนมันก็ได้กำหนดไว้แล้วว่าอะไรคือ namespace default (xmlns ที่ไม่มี : บอกว่าใช้ namespace อะไรนำหน้านั่นแหละ) แต่ Flex [...]
About llun
Just a programmerDataProvider ใน Tree component
หลังจากเขียน FeedReader แล้วพบความพิเศษของมันอย่างนึงใน Tree component คือจะทำให้มันยากก็ยากได้ หรือจะทำให้มันใช้ง่ายก็ง่ายสุดๆ เหมือนกัน แต่ก่อนเวลาผมจะใช้ component นี้ข้อมูลที่จะใช้ก็จะทำเป็น xml ให้มีโครงสร้างตามที่ต้องการก่อน เช่น ถ้าข้อมูลมีลักษณะเป็น root -> directory -> file ก็จะสร้าง xml เป็น ซึ่งมันลำบากสิ้นดี แต่หลังจากทำ FeedReader แล้วค้นพบอะไรบางอย่างนั่นคือ มันมี TreeDataDescriptor ด้วยที่ไว้อธิบายข้อมูลว่าจะให้แสดงเป็น Tree ได้ยังไงแล้วมันก็มีค่าพื้นฐานให้อยู่แล้วด้วยคือ ถ้า object ที่ใส่เข้ามาในตัวแปร dataProvider มี property ที่ชื่อว่า name แล้ว children มันจะเอา name มาแสดงส่วนอันไหนที่มี children ก็จะทำให้มีลูกสามารถขยายออกมาได้ เช่น class Folder { public var name:String public [...]
สื่อ กิจกรรม ทุน
เดือนนี้มีงานเกี่ยวกับคอมใหญ่ๆ อยู่สองงานคือ #TNWA และ Barcamp ครั้งที่สอง มันอาจจะไม่เหมือนกับงานคอมที่คนอื่นเข้าใจคือเป็นการแสดงสินค้า แต่เป็นงานที่ให้กลุ่มคนเขียนโปรแกรม และมีอาชีพที่ต้องทำงานโดยใช้คอมพิวเตอร์เป็นหลัก มารวมกลุ่มกันมากกว่า นอกจากงานที่จัดเพื่อรวมกลุ่มแบบนี้แล้ว ยังมีอีกกิจกรรมที่ได้เห็นทาง Blognone แล้วทำให้ผมสนใจคือ APC (ใช่ป่าวหว่า) ที่เป็นการให้คนเข้ามาแข่งกันเขียนโปรแกรมด้วยภาษาซีแล้วส่งผลลัพธ์ไปทางเว็บ ใครทำได้เร็วสุดก็ได้คะแนนสูงสุดไป สิ่งที่ทำให้ผมสนใจงานเหล่านี้ไม่ใช่ตัวกิจกรรมที่มีอยู่ในงาน หรอกแต่เป็นจุดเริ่มต้นของงานต่างหาก โดยงานต่างๆ เหล่านี้มีสื่อที่เหมือนจะกลายเป็นเว็บข่าวเกี่ยวกับไอที และวิทยาศาสตร์หลักๆไปแล้วคือ Blognone ที่คอยประชาสัมพันธ์ให้รู้ แล้วก็มี Twitter อีกช่องทางโดยมี @sugree เป็นคนกระจายข่าวทำให้มีคนสนใจ และไปงานเยอะพอสมควร นอกจากนี้ Blognone ยังเป็นเหมือนแหล่งหาเงินลงทุนให้กับคนที่ต้องการจัดกิจกรรมต่างๆ หรือทำอะไรในกลุ่มไอที อีกด้วยซึ่งนี่แหละ เป็นอะไรที่ผมสนใจที่สุด จำได้ว่ามีหัวข้อนึงในเว็บนั้นที่ชวนให้แต่ละคนคิดถ้าอยากให้วงการไอทีไทยเติบโตไปกว่านี้จะทำอะไรกันบ้าง แล้วก็มีบางคนเขียนเข้ามาว่า อยากทำอย่างนู้นอย่างนี้ แต่ติดที่เรื่องทุน แต่ก็โดนตอบกลับมาว่าทุนนั้นจริงๆ หาง่ายที่สุดแล้ว ซึ่งผมก็เห็นด้วยส่วนหนึ่งว่าทุนนั้นหาง่าย แต่มันต้องขึ้นกับช่องทางในการหาด้วย + คนที่ขอนั้นตั้งใจที่จะทำจนกิจกรรมสำเร็จจริงหรือป่าว ตอนนี้ช่องทางหาทุนที่เหมือนจะมีเพิ่มมาอีกช่องทางแล้วนั่นคือตัวเว็บ Blognone นั่นเองโดยสังเกตได้จากกิจกรรม APC ที่สามารถหาทุนได้อย่างรวดเร็วไม่ถึงสิบวัน ดังนั้นตอนนี้ผมเลยเชื่ออย่างหนึ่งว่า ถ้ากิจกรรมนั้นดี และมีคนทำจริงๆ [...]
FeedReader ที่จะเอาไปคุยใน Barcamp
ไม่ได้เขียนบล๊อกมาประมาณอาทิตย์ เพราะอาทิตย์ที่แล้วนอกจากงานประจำแล้ว ได้แอบไปเขียนอะไรเล็กๆ เล่นอีกอย่างหนึ่งด้วยเผื่อเอาไปคุยในงาน barcamp เห็นตอนนี้กำลังมีกิจกรรมให้อัดวิดีโอบอกว่าจะไปคุยอะไรใน barcamp ซะด้วย แต่ขี้เกียจอัดวิดีโออะ เอาเป็นภาพไปละกัน ตอนนี้ก็ยังไม่ค่อยสมบูรณ์เท่าไหร่ แต่ก็พอดูได้หละนะ คาดว่าจะเข็นทันให้นิ่งพอก่อน barcamp ใครอยากลองไปเล่นดูก็ดาวโหลดตรงนี้เลย: FeedReader.air สำหรับโค้ดทั้งหลายใครอยากเอาไปทำต่อก็เอาออกได้จากที่ http://project.llun.info/repository ใช้ svn ดึงออกมาได้เลยครับ ปอลอ: ใครใช้ windows ทดลองให้ผมด้วยนะ ผมลองบนเครื่องที่ใช้อยู่แล้วมันไม่ได้แฮะ ลองสำรวจดูเป็นที่ AIR มันไม่แก้ cookie ให้ใหม่อ่ะ ไม่เข้าใจเหมือนกันว่าทำไม เห้อ เดี๊ยวคงได้ลง AIR บน windows ใหม่
SharedObject
หลังจากหลีกเลี่ยงมานานไม่ยอมใช้มัน วันนี้ก็มีงานที่ต้องใช้จนได้ SharedObject ที่ฟังจากเพื่อนและพี่มามันคือสิ่งที่ไว้เก็บข้อมูลฝั่งไคลเอ็นท์ของ Flex คล้ายๆกับ คุ๊กกี้ ของเว็บบราวเซอร์ วิธีใช้นั้นมันก็ง่ายแสนง่ายเพราะมันเป็นเพียงตารางอันนึงไว้เก็บ key กับ value โดยเวลาจะยัดอะไรใส่ลงไปก็บอกว่า ไอ้นี่ใช้ชื่ออะไรสำหรับอ้างอิง เวลาจะเอามาใช้ก็ใช้ชื่อนั้นดึงออกมา สิ่งที่ผมเอามาใช้คือไว้จำว่าครั้งสุดท้ายที่เข้ามาในโปรแกรมนั้นเปิดหน้าอะไรเอาไว้ เวลาเปิดมาอีกครั้งจะได้ไม่ต้องเสียเวลาไปกดเปิดตรงนั้นอีก เปิดมาให้เลยเมื่อเข้ามา ลองดูโค้ดตามด้านล่างเลยละกัน import flash.net.SharedObject; import mx.events.ItemClickEvent; private var cookie:SharedObject = SharedObject.getLocal(“views”) protected override function createChildren():void { super.createChildren() if (cookie.data.value != null) { views.selectedIndex = cookie.data.value } } private function switchView(event:ItemClickEvent):void { views.selectedIndex = event.index cookie.data.value = event.index cookie.flush() [...]