Archive for the 'ซอฟต์แวร์' Category

Where r u Twitterer? ชาวทวิตเตอร์อยู่ไหนหรอ

หลังจากอยู่ในวงการณ์ทวิตเตอร์มานานอยู่มาวันหนึ่ง ก็คิดว่าเอะเราก็ใช้ทวิตเตอร์อยู่แล้ว แต่จะทำให้คนที่เขาติดตามเราเขารู้ได้ไงว่าเราอยู่ไหน โดยที่ไม่ต้องบอกเลย ก็เลยคิดวิธีโดยใช้สัญลักษณ์พิเศษเล็กน้อยคือ @#สถานที่ แบบนี้โดยเมื่อ ทวีต แบบนั้นแล้วสามารถใช้ระบบนี้

http://labs.jersure.com/twitter/

โดยคุณสามารถดูคนที่คุณติดตามได้โดยใส่ชื่อ username ลงไปก็สามารถดูคนที่เล่นคำนี้ได้แล้วครับ โดยเฉพาะถ้าคุณเล่น กับเราคุณยังสามารถแปะ embed code ได้โดยเขาไปยังชื่อของคุณแล้วนำมาแปะใน Blog หรือ HTML ของคุณได้เสมอเลยตัวอย่างของผมก็คือ

http://labs.jersure.com/twitter/tweets/whereAreYou/domesterz

ถ้าเขาไปจะเห็น Embed Code ผมก็เอา Code นั้นมาแปะที่เว็บผมที่อยู่ด้านขวาตอนนี้นะครับ

ปล. ตอนนี้ยังเล่นได้เฉพาะคนที่เป็น public tweet นะครับแต่ยังใช้ไม่ได้สำหรับ protected tweet

Twistori ภาษาไทย !

ถึงแม้จะทำงานแล้ว แต่ก็ไม่พลาดที่จะส่งผลงานชิ้นเล็กๆมาให้ทุกท่านได้เล่นกับ โดยผมเองได้นึกสนุกอยากทำเลียนแบบ Twistori.com ก็เลยลองเขียนเล่นๆดูครับ ตอนนี้ทำได้อย่างเขาประมาณ 60% ละเหลืออีก 40% เป็นรายละเอียดรวมถึง Option บางอย่าง สำหรับใครที่ยังไม่รู้ว่าเจ้า Twistori นั้นคืออะไรผมจะอธิบายให้ฟังคร่าวๆครับเจ้า Twistori นั้นเป็นการค้นหาคำใน Twitter แล้วนำมาใส่สีสันให้สวยงาม + effect ที่จะค่อยๆเลื่อนขึ้นทำให้มันน่าสนใจครับ

ในระหว่างที่เราดูนั้นสามารถสลับคำไปมาได้ ซึ่งถ้าใครเข้าไปโหลดแล้วมันช้า ก็แปลว่ามันอาจจะยังไม่ได้ Cache ไว้นะครับซึ่งผม Cache ไว้ 4 ชม. แล้วในอนาคตจะเปิดเป็น Open Source ให้ทุกท่านสามารถนำไปใช้ได้ครับผมโดยด้านหลังทำเสร็จไป 70% ละเหลือคำสั่งให้ติกได้ว่า เอาอันนู้นหรืออันนี้ไหมเป็นต้นครับ ใครอยากลองเล่น Twistori ภาษาไทยรุ่น Beta ก่อนเชิญได้ที่นี้ครับ

http://labs.jersure.com/twistori/

CodeIgniter ไม่ใช่ Framework ที่ดี !

หลังจากผมเป็นคนแนะนำผ่าน Blog นี้ว่า CodeIgniter นั้นดีหนักหนา และเหมาะสมที่จะเรียนรู้ แต่ไหงวันนี้มากลับคำพูดตัวเองแบบนี้ละ ที่จริงไม่ใช่อะไรหรอกครับผมตั้งหัวข้อชวนคิดว่าจริงๆแล้ว CodeIgniter มันดีจริงหรืิอ ? ถ้าผมหยิบประเด็นมาพูดจริงๆ มีหลายเรื่องที่ CodeIgniter ยังไม่ถือว่าดีหนัก และมีอีกหลายเรื่องที่ CodeIgniter ทำได้ดีมาก เอาละครับวันนี้ผมก็มาเผา CodeIgniter พอประมาณกันหน่อยดีกว่า (ขนาดเปิดเว็บ CodeIgniter.in.th แล้วไหงมาเผาซะงั้น แล้วใครจะใช้เนี้ย)

  • การเขียนโค้ดยังขาด ความรวดเร็วในการเขียนถ้าเทียบกับ CakePHP หรือข้ามรุ่นอย่าง Ruby on Rails
  • ไม่มีการทำ “ข้อตกลงในการเขียน” (Convention over configuration) ทำให้ Developer ทำงานได้ตามใจชอบซึ่งมันมีดีและไม่ดีอยู่เหมือนกัน
  • CodeIgniter ไม่ใช่ Full-stack framework ทำให้ดูขาดๆต้องหาส่วนมาเติมเต็มไม่มากก็น้อย ไม่ว่าจะเป็น ORM , AJAX หรืออื่นเช่น Auth and ACL
  • ไม่มีตัว Generator ที่ช่วยทำหลายๆอย่างให้แกเราอย่าง CakePHP หรือ Ruby on Rails
  • ตัวช่วยหลายๆตัวยังดีไม่พออย่างเช่น Active Record ถึงแม้ว่าจะดีแต่ก็ยังไม่ง่ายที่จะเอาไว้เรียกใช้ (ต้องทำเอง)

เอาละครับว่ากันไปหอมปากหอมคอ เสร็จแล้วผมจะมาพูดในอีกมุมมองหนึ่งละกันครับ ว่าในการที่มันไม่มีอะไรเนี้ยและที่ทำให้มันสุดยอด ไม่ใช่แค่ดี 55+ (ด่าก่อนแล้วขายของ) แล้วมันดียังไงละ หลายคนอาจจะไม่เห็นด้วยกับสิ่งที่ผมกำลังจะบอก แต่ผมมองว่านี้คือจุดแข็งของ CodeIgniter อย่างแท้จริง และทุกคนก็อยากใช้มันเพราะสิ่งนี้

  • CodeIgniter มีระบบ Hooks ซึ่งยอมให้เราเปลี่ยนแปลง หรือทำบางอย่างซึ่งไม่ต้องยุ่งกะตัวระบบโดยตรง ทำให้พัฒนาต่อยอดได้ โดยยังไม่กระทบระบบ CodeIgniter
  • อิสระที่จะทำอะไรยังไงก็ได้ และง่ายต่อความเข้าใจ เพราะไม่มี “ข้อตกลงในการเขียน” ทำให้โค้ดส่วนใหญ่อยู่ในคู่มือและใช้ PHP ธรรมดา ไม่ต้องเรียนรู้และจำข้อตกลง
  • สามารถต่อเติม Library ต่างๆเข้าไปได้อย่างง่ายดาย และเข้าใจง่าย และไม่มีการบังคับโดยตรง มีเพียงการแยก folder เพื่อบ่งบอกมาให้แล้วแค่นั้น แต่ไม่บังคับ เช่น library กับ helper (จริงๆมันมีหลักในการเขียนอยู่ซึ่ง ใน Ruby on Rails จะใช้ Helper ใน view โหมดและ library ใช้ใน controller แต่ตอนหลัง ก็มีการทำให้สามารถใช้ helper ใน controller ได้ซึ่ง CodeIgniter ทำแบบนี้แต่แรก)
  • ความอิสระที่จะโหลด view ยังไงก็ได้ตามใจชอบ ซึ่งทำให้คนเขียน/คนมาอ่านต่อเข้าใจได้อย่างชัดเจน ซึ่งส่วนนี้ถ้าเกิดมีข้อตกลงมันจะดีคือเขียนน้อย แต่อาจจะงงถ้าศึกษามาไม่ดีพอ
  • เอกสารที่ดี ทำให้มือใหม่ศึำกษาได้รวดเร็ว และไม่จำเป็นต้องรู้สิ่งอื่นๆมากๆตามมา
  • ถึงแ้ม้ไม่มีระบบที่ติดมาอย่างมากมาย แต่เราสามารถติดมันเองได้ ซึ่งเสียเวลาก็จริง แต่ทำให้เรารู้แน่ชัดว่าระบบเราต้องการใช้อะไรบ้าง และให้เรามีสิทธิเลือกตัวที่จะมาใช้งาน

อะพอหอมปากหอมคอที่ทั้งด่้าและชม อย่างเต็มปากเต็มคำ แต่ที่สุดของ CodeIgniter ไม่ใช่การใช้ CodeIgniter ในความคิดผมมันคือการทำ Framework ของตัวเองโดย CodeIgniter !!! ซึ่งสิ่งนี้ผมว่าเจ้าตัวอื่นๆสู้ได้ยากเพราะไม่มีอิสระ ซึ่งเรียกว่า Framework พร้อมใช้นั้นเอง ในกรณีของ CodeIgniter จะเรียกพร้อมก็ได้ แต่จริงๆผมว่ามันยังแค่เกือบพร้อม เพราะยังขาดหลายอย่างซึ่งต้องต่อเติมเอง แต่ด้วยความมันเป็นแบบนี้ นี้และทำให้เราทำ Framework ของตัวเองได้อย่างสนุกสนานทั้งมี Hooks , ต่อเติม Library , ไหนจะยังสามารถรวม library เจ๋งๆอย่าง Zend และอื่นๆมาใช้งานได้อีก แล้วมีผลต่อองค์กรอย่างไรหรอครับ

คุณทราบไหมว่าปกติแล้วองค์กรส่วนใหญ่ชอบทำ Framework เป็นของตัวเอง ? หลายๆที่ทำงานที่ผมเคยได้ไปทำมานั้นมีการใช้ Framework เป็นของตัวเองทั้งนั้นซึ่งมีทั้งพัฒนาเองหรือไปต่อยอดจากตัวอื่นก็มีมาก (ผมทำมา 4 ที่ก่อนล่าสุดตอนนี้จะอยู่กับ Duocore พาร์ตไทม์นะครับ) แล้ว CodeIgniter ก็หยิบยื่นโอกาสง่ายที่จะสร้าง Framework ของตัวเองให้เป็นเรื่องง่าย ไม่แพ้ Zend รวมกับความเร็วที่มีอยู่และ library อันน้อยนิดทำให้ความเร็วก่อนจะโมอยู่ในผลลัพธ์ที่น่าพอใจมาก , ความเร็วในการเขียนโค้ดซึ่งใช้ได้ แต่ยังไม่เร็ว ทุกอย่างดูกลางๆไปหมดแล้วแต่คุณจะเลือกทางเดินของ Framework คุณว่าจะเดินไปทางไหน แล้วคุณจะลดอะไร?

ถ้าให้เปรียบเทียบง่ายๆถ้าใครเคยเล่นเกม Ragnarok ตอนเริ่มสร้างตัวละคร คุณต้องเลือกสักทางว่าจะ up STR แล้วต้องเสีย INT ทำนองเดียวกัน ถ้าจะสร้าง Framework ที่เน้นการเขียนโค้ดน้อยๆได้ผลลัพธ์เยอะๆ บางครั้งประสิทธิภาพมันก็อาจจะช้าก็เป็นได้ แต่สุดท้ายคุณมี “อิสระที่จะคิด จะทำได้” นี้และคือความสุดยอดของ CodeIgniter อิสระที่เพียงพอ และกรอบที่ให้พึงพาได้ วันนี้มาขายของพอแล้วอย่าลืมติดตามเรื่องราว CodeIgniter ได้จากชุมชนแห่งนี้ครับ

Codeigniter.in.th

Balsamiq Mockups เครื่องมือทำ Mockup อย่างง่ายและดี

software wiki

Balsamiq หลังจากรับ License ของเขามานานพอสมควรวันนี้ได้โอกาส Review แล้วครับ  เจ้า Tools ตัวนี้ทุกคนอาจไม่ค่อยคุ้นสักเท่าไร ขอสรุปง่ายๆว่ามันเป็นเครื่องมือทำ Mockup ครับโดยมีประสิทธิภาพมากพอตัวเลยทีเดียว ข้อดีคือผู้ผลิตได้เตรียมสิ่งจำเป็นต่างๆในการทำ Mockup แต่ละอย่างมาให้แล้วไม่ว่าจะเป็นทำตัว Web App ก็จะเตรียมตัว Tools มาให้มากมาย โดยผมจะพูดข้อดีข้อเสียให้ฟังกันครับ โดยเจ้า Tools ตัวนี้ผมรู้จักมาจาก Iamia.net ครับซึ่งแนะนำไว้ทำให้ผมได้ลองใช้ และลองขอ License เขามาใช้ดู เอาละมาดูข้อดีกันก่อนเลยครับ

ข้อดี

  • ใช้งานง่าย การลากวางทำได้รวดเร็ว
  • มีของให้ใช้เยอะมากมาย ทำให้เราไม่ต้องเขียนอะไรใหม่เองเลย
  • สามารถเพิ่มรูปแบบใหม่ๆมาใช้งานได้ เช่น iPhone
  • สามารถ Group / Ungroup หรือ Lock ได้คล้ายใน Flash เพื่อสะดวกในการออกแบบ
  • สามารถนำออกเป็นแบบภาพ PNG ได้

ข้อเีสีย

  • ไม่รองรับภาษาไทย !!
  • การแยกประเภททำให้สับสนสำหรับคนยังไม่ชิน
  • เวลาจะใส่ข้อมูล บางอันทำให้งง และไม่สวย เช่น Datagrid
  • ปุ่ม key ลัดบางอย่างก็ไม่ได้มีอธิบายไว้ชัดเจน เช่น Ctrl+Enter เพื่อออกจากการพิมพ์ข้อมูลของเครื่องมือ

แต่ขอฟันธงว่าออกแบบ Interface คร่าวๆได้ดีมากๆเหมาะสำหรับ เวลาไม่รู้จะเริ่มต้นยังไงก็ใช้เจ้าตัวนี้ออกแบบก่อนเลย เสร็จแล้วค่อยใช้เครื่องมืออื่นมาเสริมรายละเอียดสำหรับ เมื่อใช้คล่องๆแล้วทำให้ได้ผลลัพธ์รวดเร็วมากๆ ไม่เชื่อไปลองโหลดมาเล่นดูสิครับ แล้วถ้าอยากได้ License ฟรีก็แค่ Review ให้เขาหน่อยแบบผมนี้ไง  http://www.balsamiq.com/products/mockups

Traffic Shaper XP ทางเลือกสำหรับคนที่ไม่อยากใช้ CFosSpeed

หลังจากที่ผมพยายามทำตัวให้ใช้ Freeware/Open Source มากขึ้นผมก็พยายามจะหาตัวมาใช้แทนเจ้า CFosSpeed ซึ่งหาเท่าไรก็ไม่เจอ แล้วก็เคยใช้ Traffic Shaper XP รุ่นก่อนๆก็ไม่ประทับใจ จนกระทั่งมา version 1.21 นี้ซึ่งใช้ได้ดีพอสมควรเลย (แต่ก็สู้ CFosSpeed ไม่ได้) แล้วก็ฟรีด้วยครับ วิธีใช้งานค่อนข้างจุกจิกสักเล็กน้อย โดยผมมีวิธีการทำแบบย่อๆดังนี้ครับ

  1. ตั้งกฎขึ้นมาเพื่อใช้สำหรับ เครื่องเราหรือเฉพาะ port ที่ตั้งไว้
  2. กำหนดจำนวน queue ให้ดียิ่งเยอะจะช้า (เพราะมันรอเขาคิวครบแล้วส่งไปทีเดียว)
  3. จัด prioritize ว่ากฎไหนเป็นกฎสำคัญ

หลักๆแล้ว 3 อย่างนี้จะเป็นสิ่งที่ผมใช้ทำ Traffic Shaping นะครับ โดยผมจะยกตัวอย่างสัก 2 อันเป็นตัวอย่างครับ สมมุติว่าผมอยากทำให้เวลาเล่น net ไปเปิด bit ไปเร็วขึ้น ผมก็จะใช้การ setting แบบนี้ครับ ขั้นแรกสร้างกฎของ Web ขึ้นมาก่อนครับโดยกด Add Rule Wizard แล้วทำดังนี้ครับ

  • Network Adapter :  ให้เลือกกลุ่ม network ที่ใช้ในที่นี้ผมใช้ Network ชื่อ TRUE ครับซึ่งเชื่อมไปยัง router ของผม
  • Direction : ให้เราเลือกว่าจะ Download หรือ Upload หรือ Both คือทั้งสองอย่างอันนี้ผมเลือก Both ครับ
  • Protocol : อันนี้แบบฟรีมีให้เลือกตัวเดียวคือ TCP
  • Local Endpoint : อันนี้คือจุดสิ้นสุดปลายทางภายใน หรือตัวส่งนั้นเองโดยใส่ได้ทั้ง IP เครื่องหรือจะเป็น Port อันนี้ผมเลือกเป็น Any:Any เพราะหมายถึงสิ่งใดๆส่งไปก็ได้
  • Remote Endpoint : อันนี้คือจุดสิ้นสุดของปลายทางภายนอก เช่น เว็บ ,  ip เครื่อง หรืออื่นๆ ใส่ได้เหมือน Local Endpoint แต่ในที่นี้ผมจะใส่เป็น Any:80 เพราะผมต้องใช้กฎนี้กับที่มีจุดสิ้นสุดของปลายทางภายนอกเป็น port 80 หรือเว็บนั้นเอง
  • Limit upload / Limit Download : อันนี้ผมปรับให้ไม่มี Limit เพราะต้องการให้โหลดเว็บเร็วสุด
  • Rule Order : คืออันดับของกฎอันนี้ผมปรับเป็น First (1) เลยมันจะได้ทำอันนี้ก่อน
  • Queue : อันนี้และตัวทำ Traffic Shaping จะให้มันส่งไปเมื่อ Queue เต็มเท่าไร ในที่นี้ผมปรับไว้ 2 พอให้มันค่อยๆมาดีกว่าจะได้ดูไม่ช้า แต่ถ้าเป็น Bit Torrent ผมปรับไว้ 70 เลย

เสร็จแล้ว 1 อันนี้คือกฎของเว็บส่วนกฎของ Bit Torrent ผมก็ปรับไว้ดังนี้

  • Network Adapter :  TRUE เหมือนเดิมครับ
  • Direction : Both ครับ
  • Protocol :  TCP
  • Local Endpoint : Any:ช่วงของ port BitTorrent ครับ โดยอันนี้ต้องอาศัยการสังเกตุจาก monitor Traffic Shaper Xp เวลาเปิดบิตมันจะบอกว่ามี ip ไหน port อะไรที่เราส่งไปบ้าง โดยตรงนี้ผมใช้ Torrent Group ครับซึ่งประกอบด้วย port 36269 ซึ่งเป็น port ที่ผมทำ port forward ไว้แล้วก็ 1000-2500 ครับซึ่งเป็น port ที่ส่งไปยังเครื่องต่างๆครับ
  • Remote Endpoint :  Any:Any ครับเพราะเราไม่รู้ว่าคนรับใช้ port อะไร
  • Limit upload / Limit Download : อันนี้ผมก็ปรับ Unlimit ทั้งคู่ครับ
  • Rule Order : คืออันดับของกฎอันนี้ผมปรับเป็น Last(9) มันจะได้ทำหลังสุด
  • Queue : 70 ครับตามที่บอกไว้ อันนี้แล้วแต่คนนะครับเน้นส่งข้อมูลบ่อยๆก็ 30-40 กำลังดีครับซึ่งทำให้โอกาส Lost Connect น้อยกว่าของผมครับ

อันนี้ก็เป็นวิธีใช้เล็กๆน้อยนะครับ ใครมีวิธีเจ๋งๆำสำหรับเจ้าตัวนี้มาแนะนำกันบ้างนะครับ :) วันนี้ผมไปแล้วครับสวัสดีครับ

Next Page »