เล่าเรื่องงานอีกหละ ฮะๆๆ วันนี้มีสิ่งที่ต้องทำอยู่หนึ่งอย่าง(หลังจากอัดทำไปในสองวันแรก วันหลังๆ เลยรู้สึกน้อยเลย -_-”) คือหาทางกรองข้อมูล คราวนี้ข้อมูลที่มามันเป็นอย่างนี้ xxxhello55xxxx garbage garbage xxxx xworld6xxx garbage garbage xxxx xxxxxxbaa7777xxxx garbage garbage xxxx แล้วสิ่งที่ต้องการคือคำที่อยู่ระหว่าง x ช่องแรกสุด (hello, world, baa) วิธีการง่ายๆ ถ้าไม่ใช้ expression ก็คือหาทางตัดเอา x ด้านหน้ากับ x ด้านหลังและข้อความที่เหลือทิ้งไปให้หมด แต่มันช่างเปลืองแรงยังไงไม่รู้ทั้งๆ ที่จาวามันก็มี expression ที่สามารถตัดเอาคำที่ตรงตามรูปแบบที่ต้องการมาให้เลยได้อยู่แล้ว ทำไมเราต้องไปหาทางตัดมันเองด้วย ก็เลยลองขุดๆ ดูแล้วก็พบวิธีทำตามด้านล่าง for (String data:datas) { Matcher m = Pattern.compile(“[a-z]+\\d+”).matcher(data); m.find(); System.out.println(m.group()); } เห้ย อะไรมันจะยุ่งยากงี้ฟะ ทำไมมันต้องทำหลายขั้นตอนงี้ด้วย [...]
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 [...]
Ganymede
หลังจากรอดาวโหลดเมื่อวาน จนสุดท้ายก็ไม่ได้โหลดเพราะว่าแบตโน๊ตบุ๊กหมดเอาซะก่อน เลยให้เซิร์ฟเวอร์ดาวโหลดเก็บไว้แทน แล้วตอนเช้าค่อยมาโหลดใหม่ แล้วก็ได้ลองสมใจ อันนี้ก็ขอลองเขียนแนะนำโปรแกรมยาวๆ ดูหน่อยละกัน สำหรับของเล่นที่มีมาใหม่ต่างๆ หลายคนคงดูคร่าวๆ มาบ้างแล้วที่ blognone อันนี้ก็เขียนละเอียดหน่อยนึงละกัน เริ่มจากตอนแรกที่เปิดเข้าโปรแกรมก็เจอหน้าตาที่เปลี่ยนไป จะบอกสวยขึ้นดีป่าวหว่า แต่รู้สึกมันม่วงขึ้นอย่างเห็นได้ชัด อาการซันเริ่มออกฮะๆๆ ความม่วงเข้าตา เปิดมาหน้าแรกก็เลือก workspace อันนี้ไม่มีอะไรแปลกใหม่ แต่ที่แปลกใหม่คือหน้าจอหลัก ที่มีปุ่มแปลกใหม่เข้ามา นั่นคือ Breadcrumb พี่ก็บอกว่ามาจากรอยขนมปังในเรื่อง แฮนเซลกับเกรเทล โฮ่คิดได้ไงนี่ ปุ่มก็หน้าตาประมาณนี้ อยู่ข้างๆ กับปุ่ม search ในแถบเครื่องมือด้านบน พอกดแล้วก็จะได้ แถบหน้าตาคล้ายๆ ด้านล่างขึ้นมาอยู่เหนือส่วนที่แก้ไขโค้ด โดยจะบอกรายละเอียดว่าตอนนี้เราแก้ไขคลาสไหน แล้วมันอยู่ที่ใด สืบเชื้อสายมาจากใคร ประมาณนี้ ดูหน้าจอรวมๆ หน่อยดีกว่า ที่เห็นด้านบนนี่มีติดส่วนขยายไปเพิ่มบ้างแล้วเช่น ECF และ subclipse สำหรับคนที่อ่าน blognone มาก่อนคงสงสัยว่าทำไมต้องติด ECF เพิ่ม ก็เพราะว่าผมไม่ได้โหลดชุดติดตั้งมาตรฐานจากหน้าแรกของ Eclipse หนะครับ เนื่องจากของเล่นมันเยอะแยะมากมาย ดังนั้นเลยต้องติดเพิ่มเอง [...]
Eclipse site offline
เว็บ Eclipse ล่วงไปซะแล้วว่าจะไปโหลดรุ่นใหม่มาลองเล่นซะหน่อย ~ ~” แต่ทำให้รู้ว่าเว็บ Eclipse ใช้ Drupal ^^! แต่เข้าไปก่อนล่มบอกว่าจะดาวโหลดต้องบริจาคก่อนด้วยอ่ะ 35$ ขึ้นไป(บังคับบริจาคถึงโหลดได้ เอ๊ะ แบบนี้ไม่เรียกบริจาคแล้วไช่มะ – -”)
Java, Actionscript, Python
ช่วงนี้เขียนสามภาษามึนๆ เลยเขียนถึงซักหน่อย ทั้งสามภาษาจะบอกว่าแตกต่างกันอย่างสิ้นเชิงก็ได้ เริ่มจาก Java ที่มีโครงสร้างและข้อกำหนดต่างๆ มากมาย เรียกว่า ข้อผิดพลาดต่างๆ สามารถหาได้จากตอน Compile แทบทั้งหมด แม้ว่าตัวภาษาจะไม่สวยงามมากนัก เยิ่นเย้อนิดหน่อย (ก็ไม่หน่อยนะ จริงๆ ก็ขึ้นอยู่กับว่าคนออกแบบ คนเขียนนั่นแหละ) มีสัญลักษณ์ต่างๆ มากมาย (จริงอันนี้มันก็พอกันทั้งสามภาษานั่นแหละ) แต่ก็มีของเล่นต่างๆ ให้มากมายด้วยเช่นกัน (แต่อันนี้เป็นผลดีมาจากการที่ Java อยู่มานาน) สำหรับ Actionscript โครงสร้างภาษาต่างๆ มีลักษณะเหมือนทั้ง Java และ Python รวมกัน คือพวกขอบเขตของตัวแปร หรือ ฟังก์ชั่น อะไรก็ตามพวกนี้จะมีลักษณะเหมือน Java แต่พวก Object ต่างๆ จะคล้ายๆ กับ Python มากกว่า เลยไม่รู้จะบอกว่ามันง่ายหรือยากดี มันกึ่งๆอ่ะ คือ ทำมาให้หลายๆ อย่างสามารถตรวจสอบตั้งแต่ตอน Compile ได้ แต่ก็มีหลายอย่างที่ต้องกำหนดกันเอง เช่น [...]