เมื่อวานเจอปัญหาประหลาดหลังจากลองอัพเดทไฟล์จาก svn ใน Eclipse กลับเจอข้อความแจ้งเตือนประหลาดบอก client ที่ใช้เก่าเกินไป แต่เครื่องเพื่อนกลับไม่มีปัญหา ลองเข้าเว็บ Subclipse ปรากฏว่ามีรุ่นใหม่ออกมาแล้วเลยจัดแจงอัพเดทซะเลยแล้วก็เจอปัญหาตามมาอีกมากมาย ก็เลยเอามาเขียนในนี้ซะหน่อย Subclipse รุ่นใหม่มีสิ่งที่เปลี่ยนไปคือแทนที่จะใช้ svn client ใน Eclipse เลยกลับออกมาใช้ client ภายนอกของระบบ ผ่าน JNI ดังนั้นก่อนที่จะใช้ได้ก็ต้องเตรียม svn ภายนอกให้เรียบร้อยก่อน สำหรับที่จดไว้นี้เฉพาะ Fedora9 คิดว่าลินุกซ์ค่ายอื่นก็คงติดไม่ค่อยต่างกันเท่าไหร่ แต่สำหรับ Windows นี่คงต้องไปนั่งลองทำอีกที -_-” เริ่มจากติด svn client ลงไปก่อนพร้อมกับ javahl #yum install subversion subversion-javahl จากนั้นก็เข้า Eclipse ติด Subclipse ด้วยการเพิ่ม source เข้าไป http://subclipse.tigris.org/update_1.4.x/ แต่ว่า ด้วยความที่ต้นฉบับมันช้ามากๆ เลยทำ update สำรองไว้ที่ [...]
FTP Client แบบเถื่อนๆ บนจาวา
มีงานแบบอย่างด่วนวิ่งเข้าหาแบบไม่ทันรับมือตั้งแต่เมื่อวาน ตอนแรกนึกว่าจะเสร็จแล้ววันนี้ต้องแก้ใหม่ด้วย NFS ไม่สามารถใช้ได้อีก วันนี้เลยต้องหาทางส่งข้อมูลขนาดใหญ่ด้วยวิธีอื่นแทน แล้วก็มีมติมาว่าใช้ FTP ก็เลยต้องไปหาวิธีใช้ในจาวามาซะนี่ ลองหาในอากู๋ดูก็เจออยู่หลายเว็บแต่ว่าที่ใช้มีอยู่เว็บเดียวคือ Javaworld: Java FTP Library Review เพราะอยากได้อะไรคร่าวๆ ไม่ต้องละเอียดมาก ไม่ต้องหาอะไรมาลงเพิ่ม แล้วก็ทำให้รู้อย่างนึงว่า มันมีอยู่แล้วแต่มีข้อเสียคือ มันต้องปิดเปิดบ่อยๆ ดังนั้นส่งไฟล์เล็กๆ หลายๆ ไฟล์ท่าทางจะไม่ดีแต่ไม่เป็นไร ยังไงไฟล์ที่ส่งก็ใหญ่อยู่และ (ได้ยินมาว่ามากกว่า 5GB ต่อไฟล์ -_-”) ขี้เกียจบ่นมากและ ดูโค้ดเลยละกัน เพราะอันนี้กะว่าเขียนเก็บเท่านั้นแล String ftpTarget = String.format(“ftp://%s:%s@%s/%s%s;type=i”, user, pass, target, prefix, filename); URL url = new URL(ftpTarget); URLConnection connection = url.openConnection(); OutputStream out = connection.getOutputStream(); FileInputStream in [...]
Learning python
เมื่อวานกลับบ้านมาประมาณสี่ทุ่ม (เนื่องจากเล่นเกม Ticket to ride อยู่ที่ทำงาน ^^!) ก็มาเจอพัสดุลึกลับจาก Amazon เข้า จริงๆ ก็ไม่ลึกลับเท่าไหร่ เพราะมันคือหนังสือที่สั่งไปตอนต้นเดือน Learning Python นั่นเอง กล่องนี่ดีกว่าเดิมมาก แข็งแรงแน่นหนะ แกะยากกว่าเดิมเยอะเลย แต่ว่าพอเปิดออกมาแล้ว หนังสือยับเยินนิดๆ อ่ะ เล่มก่อนๆ ไม่เป็นนะ ไม่รู้ทำไม ลองดูสภาพด้านล่างละกัน อันนี้ภาพเต็มๆ สภาพขอบๆ ที่เยินนิดๆ แต่ก็ไม่เป็นไรเพราะยังไงมันก็ต้องเยินภายหลังอยู่แล้ว แต่แค่สงสัย กล่องมันสภาพดีกว่าคราวที่แล้วมากๆ ทำไมของด้านในมันกลับแย่ลงหว่า -_-” ส่วนสองอันล่างนี่ของเล่นที่จะเอาไปที่เกาะด้วย ^^!
Event
โอ่ย เป็นเรื่องที่เขียนยากพอควรเลยเรื่องนี้ เอาเป็นว่าสรุปแบบที่ผมเข้าใจเก็บไว้ก่อนละกัน ใน Flex เวลาทำงานกับ UIComponent ต่างๆ สิ่งหนึ่งที่คิดว่าต้องเจอกันอย่างแน่นอนและต้องใช้ด้วยคือ Event ซึ่งมันมีมาให้อัตโนมัติกับ UIComponent ทุกตัว โดยถ้าเทียบกับภาษาอื่นก็อย่างจาวา ก็ให้นึกถึงพวก listener ทั้งหลายได้เลย คล้ายๆ กัน Event ของ Flex อาจต่างจากภาษาอื่นตรงที่มันมีลำดับขั้นในการทำงาน แทนที่จะมีการส่งขึ้นไปแล้วเรียกฟังก์ชั่นโดยตรง คือ Capturing Targeting Bubbling ขั้นแรก Capturing เป็นขั้นที่ Flex จะไล่หาว่า Component ไหนจะเป็นตัวรับ Event เพื่อเอามาทำงานโดยไล่จาก Component ที่อยู่บนสุดลงมาถึง Component ปัจจุบัน โดยขณะที่ไล่ลงมาก็จะมีการเปลี่ยนตัวแปร currentTarget เป็น Component ปัจจุบันที่เรียกอยู่ ปกติแล้วขั้นนี้ไม่ค่อยได้ใช้ จะใช้ขั้น Bubbling กันซะมากกว่า แต่ถ้าหากต้องการจะใช้จริงๆ สามารถกำหนดตอนใส่ Listener ได้โดยให้ argument [...]
for each in
วันนี้ทำงานแล้วเจอเรื่องนี้ติดต่อกันเลยคันไม้คันมือจดไว้หน่อยดีกว่า ใน 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 [...]