เริ่มทำงานมาวันที่ 1 มีนาปีที่แล้ว วันนี้ก็ครบ 1 ปีพอดิบพอดี เป็นการทำงานที่สนุกสนานเฮฮา แบบไม่เครียดมาก แถมได้ทำอะไรหลายๆ อย่างที่ไม่คิดว่าจะได้ทำ (ล้างตูปลา จัดโต๊ะ นอนกลางวัน กินข้าวตอนบ่ายโมง) ได้ความรู้แปลกๆ ที่บางทีอาจหาไม่ได้ในห้องเรียน (การออกแบบซอร์ฟแวร์จริงๆ การใช้โปรแกรมควบคุมรุ่นเอกสาร การลองของเล่นใหม่ๆ เช่น flex air spring …) แต่บางอย่างก็เอามาจากห้องเรียนนั่นแหละ นอกจากงานแล้วยังได้ไปเที่ยวเยอะที่สุดในรอบหลายปี (3 – 4 รอบ) ได้เล่นอะไรสนุกๆ ได้คิดถึงเรื่องอื่นๆ นอกจากคอม ได้คิดถึงคนอื่น ได้คิดถึงตัวเอ สรุปเป็นปีที่ดีสินะ แต่ว่ายังรู้สึกว่าหลายๆ อย่างยังไม่ได้ทำเลย หลายอย่างก็ทำค้างไว้เยอะเหลือเกิน แถมมีโครงการใหญ่ที่อยากทำ แต่ยังตัดสินใจไม่ได้ด้วยนี่สิ เห้อ ปีนี้ ปีนี้แหละที่ต้องทำเป้าหมายหลักๆ ที่คิดไว้ให้เป็นจริง เริ่มอย่างแรกเลยคือ ตั้ง project hosting กับ linux mirror ให้ได้ก่อนสินะ เป้าหมาย ปลายเดือนนี้แหละครับ
About llun
Just a programmerSubversion relocate
เมื่อวานย้ายที่ทำงานขึ้นมาอีก 20 ชั้น วันนี้ย้ายเซิร์ฟเวอร์เก็บไฟล์ที่ทำงานอยู่ (จริงๆ แค่เปลี่ยนไอพี) แต่แฟ้มที่อยู่ในเครื่องแปะไว้อยู่ที่ไอพีเดิม วันนี้ก็เลยเกือบต้องลำบาก เอาออกมาใหม่ทั้งหมด แต่ค้นอากู๋ไปมา ดันเจอคำสั่งที่ไว้ช่วยเปลี่ยนซะก่อน เลยรอดไป ปกติคำสั่งที่ผมใช้จะมีแค่ co (checkout), ci (commit), up(update) เอาไว้เอาไฟล์เข้าออกจากเซิร์ฟเวอร์ พอเปลี่ยนไอพีที ถามพี่พี่ก็บอกว่า co มาใหม่เลย คิดแล้วก็ซีดนิดๆ เพราะมันหลายไฟล์ + งานเก่าที่ทำไว้มีอะไรที่ค้างคาอยู่เยอะเหมือนกัน (แก้ไปแล้วอ่ะ :sad: ) สำหรับคพสั่งใหม่ที่เจอวันนี้คือ sw (switch) วิธีย้ายสำหรับเปลี่ยนที่ไฟล์ก็คือ svn sw –relocate [old] [new] [dir] เช่นไฟล์เดิมเซิร์ฟเวอร์อยู่ที่ 192.168.0.1 แต่เซิร์ฟเวอร์ใหม่ย้ายไปที่ 10.10.4.1 แล้วตำแหน่งของไฟล์อยู่ที่ /home/[user]/workspace เวลาย้ายก็ใช้คำสั่งตามนี้ svn sw –relocate http://192.168.0.1/workspace http://10.10.4.1/workspace /home/[user]/workspace หลังจากนั้นก็รอซักพักให้ svn แก้ไขข้อมูล entries [...]
เกมกระดาน
ช่วงนี้ติดเกมกระดานที่วางอยู่ที่ทำงานหลายกล่องอยู่ เกมกระดานที่เห็นส่วนใหญ่ก็จะได้รางวัลอย่างน้อยหนึ่งอย่าง แต่ที่เห็นมากสุดส่วนใหญ่จะได้รางวัล Spiel des Jahres เกมกระดานยอดเยี่ยมแห่งปีของเยอรมันเกมที่ได้รางวัลนี้และที่ ผมเห็นก็มีตามด้านล่างนี้แหละ Settlers of catan เล่นจนชวน mimoly ในห้อง #ubuntu-th มาเล่นบนคอมด้วยเลย (เกมนี้ตอนแรกผมนึกถึงเกมในคอมที่ชื่อว่า The settlers หละ แต่รูปแบบมันก็คล้ายๆ นะ) Alhambra ที่ตอนนี้ขนกลับมาเล่นที่บ้านอยู่ แต่ก็สนุกไปอีกแบบ เป็นแนวสร้างปราสาทของตนเอง ใครสร้างได้ใหญ่สุดชนะ Carcassonne เกมช่วยกันสร้างปราสาทแย่งพื้นที่ ใครได้สิ่งก่อสร้าง หรือพื้นที่มากสุดชนะ Ticket to ride หาเส้นทางรถไฟ ไปถึงเป้าหมายให้ไกลที่สุด(แต่เกมนี้่ยังไม่ได้มีโอกาสเล่นเลย) แต่ละเกมก็จะมีจุดเด่นแตกต่าง กันไปอย่าง Settlers of catan ที่เคยเล่นมาจะสนุกสุดก็ตอนที่ต้องคอยระวัง ไม่ให้ใครสร้างเมืองได้ใหญ่สุดก่อน หาโอกาสเอาโจร ไปขโมยทรัพยากร หรือแลกเปลี่ยนเป็นพันธมิตรกันชั่วคราว เพื่อสร้าง เมืองขวางไว้ หรืออย่าง Alhambra ที่ต้องมองว่า จะสร้างเมืองอย่างไรให้ใหญ่ที่สุด และกำแพงยาวที่สุด และจะเล่นสิ่งก่อสร้างแบบไหน ที่มีโอกาสชนะมากที่สุด [...]
Python
วันนี้ว่าจะเปิดดูเว็บภาษา python ซะหน่อยแต่ขี้เกียจค้นจาก อากู๋เลยลองพิมพ์ไปตรงๆ ว่า http://www.python.com โหลดเสร็จ… รีบปิดแทบไม่ทัน แม้จะเป็นงูเหมือนกันแต่ … เอาเป็นว่าต้องปิดแล้วเปิดใหม่ ค้นหาในอากู๋แล้วรู้ว่าจริงๆแล้วมัน url นี้ต่างหาก http://www.python.org คำเตือน: กรุณาอย่าเปิดขณะทำงานในอ๊อฟฟิต แล้วหันหลังให้คนอื่น
Regular expression กับภาษาไทย
วันศุกร์กำลังนั่งทำงานอยู่ แล้วก็คิดไปคิดมาว่าสิ่งที่ต้องทำคือการตรวจสอบว่า ข้อความที่ส่งเข้ามานี่มีตัวอักษรประหลาดพวก *^#$… อะไรพวกนี้อยู่หรือป่าว ปกติก็ลองกับภาษาอังกฤษธรรมดา เวลาใช้ regular expression ตรวจก็จะมีรูปแบบประมาณว่า \w ซึ่งเหมือนกันทุกภาษา แต่พอใช้ภาษาไทยปรากฏว่ามันตรวจสอบโดยใช้รูปแบบด้านบนไม่ได้นี่สิ เลยต้องขุดเพิ่มเติมนิดหน่อยแล้วก็เจอตัวนี้เข้า \p{…} รูปแบบนี้เป็นตัวบอกว่าจะใช้กลุ่มรูปแบบที่เกี่ยวกับ unicode นะ คราวนี้ถ้าต้องการตรวจสอบภาษาไทยก็ใส่เป็น \p{L} แต่ปัญหามันไม่จบแค่นั้น ถ้าใส่แค่ L มันจะเอาเฉพาะที่เป็นพยัญชนะ พวก สระ และ วรรณยุกต์ ถ้าเจอมันจะบอกว่าผิดรูปแบบทันที แต่คำภาษาไทยมันรวมพวกนั้นเข้าไปด้วยหนะสิ ก็เลยต้องแก้รูปแบบอีกทีเป็น [\p{L}\p{M}] โดย M ที่ใส่มาก็เพื่อบอกว่าเอา สระ และ วรรณยุกต์ด้วยนั่นเอง สำหรับรายละเอียดเพิ่มเติมอ่านได้จากเว็บนี้ http://unicode.org/unicode/reports/tr18/ จะมีพวกตัวอักษรตัวเล็ก ตัวใหญ่ … อีกมากมายในภาษาอื่นๆ ด้วยลองไปดูเอาละกันครับ นอกเรื่อง: ส่วนนี้พูดถึง serialize ของจาวาหน่อย เพราะวันศุกร์ไปปล่อยความงี่เง่าส่วนตัวใส่เพื่อนแหะๆ ปกติเวลา serialize วัตถุอะไรในจาวาก็จะให้คลาสของ วัตถุนั้น implements [...]