Elasticsearch คืออะไร?

เนื่องจากที่บริษัทกำลังจะก้าวเข้าสู่โลก Big Data (จริงๆ เข้ามานานแล้วแหละ แต่เริ่มจะมีโอกาสได้ใช้ประโยชน์จากมัน) ช่วง 3-4 วันที่ผ่านมานี้ก็เลยมีโอกาสได้ลองแตะๆ Elasticsearch อยู่บ้าง จริงๆ มีอีกตัวหนึ่งที่คิดไว้คือ Solr แต่ส่วนตัวแล้วชอบชื่อ Elasticsearch มากกว่า ดูหล่อกว่า เลยเริ่มศึกษาจาก Elasticsearch ก่อน

Continue reading "Elasticsearch คืออะไร?"

การมีตัวตนบนโลกอินเตอร์เนท (Internet Presence)

ในโลกยุคปัจจุบันเราคงไม่สามารถปฎิเสธได้อีกต่อไปว่า อินเตอร์เนท สามารถเชื่อมต่อคนเกือบทั้งโลกนี้ได้ ไม่ว่าจะอยู่ที่ไหนก็ตาม เลยอยากเขียนบล็อกนี้ขึ้นมาเพื่อกระตุ้นให้คนยุคใหม่ตระหนักถึงความสำคัญของการมีตัวตนบนโลกอินเตอร์เนท (Internet Presence) ให้มากขึ้น จะขอเน้นถึงการสมัครงานเป็นหลักนะ เพราะคิดว่าน่าจะเป็นประโยชน์ต่อใครก็ตามที่กำลังมองหาความท้าทายใหม่ เพราะเมื่อมีใบสมัครส่งเข้ามา เราจะรู้ได้อย่างไรว่าคุณเก่งจริง คุณอยากร่วมงานกับเรา และเราต้องการคุณด้วยจริงๆ

แม้ว่าบล็อกนี้จะพูดถึงอาชีพ "โปรแกรมเมอร์" เป็นหลัก แต่ผมมั่นใจว่าเนื้อหาจะสามารถนำไปใช้ต่อยอดกับอาชีพอื่นๆ ได้แน่นอน กระบวนการต่างๆ ที่กล่าวถึงต่อไป จะเป็นกระบวนการที่ทีม R&D ที่บริษัท Pronto Marketing ใช้อยู่ ซึ่งอาจจะมีการปรับเปลี่ยนปรับปรุงในอนาคตครับ

Continue reading "การมีตัวตนบนโลกอินเตอร์เนท (Internet Presence)"

เป้าหมายพัฒนาตัวเองในปี 2014

ปณิธานของปีนี้ เอา 5 ข้อพอ (น้อยหน่อยเพราะตั้งใจจะทำให้ครบจริงๆ)

  1. Learn to be Data Scientist.
    จะเรียน Data Science & Big Data track ให้ครบทุกคอร์ส 🙂
  2. Learn Ruby more.
    จะลงมือทำ ลองพัฒนา Web app ขึ้นมาจริงๆ จังๆ เพราะตอนนี้รู้สึกว่ายังเขียนได้ไม่คล่องเท่ากับ PHP และ Python
  3. Stay healthy.
    จะปั่นจักรยานให้ครบ 5,000 km
  4. Read at least two text books.
    ต้องอ่าน Doing Data Science กับ Agile Data Science ให้จบให้ได้
  5. Give at least 5 public talks.
    ความรู้อยู่กับตัวเองคนเดียวไม่มีประโยชน์ ต้องเผยแพร่ให้คนอื่นได้รับรู้ ในปณิธานข้อนี้จะเป็นการฝึกพูดไปด้วยในตัว ขอยึดบทความของ Hilary Mason เป็นแรงบันดาลใจในการฝึกฝน Speaking: Spend at least 1/3 of the time practicing the talk

สรุปผลการพัฒนาตัวเองในปี 2013

วันนี้วันที่ 31 เป็นวันดีที่จะสรุปผลการพัฒนาตัวเองที่ตั้งไว้ในปีนี้

  1. Learn Hadoop MapReduce.
    ยังรู้สึกว่าความรู้ยังอัดไม่แน่นเท่าไหร่ เอาไปสอนใครไม่ได้ แต่อย่างน้อยก็ได้เริ่มศึกษาจริงๆ และลองเล่นจริงจากคอร์ส Introduction to Hadoop and MapReduce ถือว่าผ่าน
  2. Embrace the uncomfortable.
    ลดละเลิก gedit/sublime ตอนนี้ใช้ vim เต็มตัว ผ่าน
  3. Publish at least one paper in an international conference.
    ปี 2013 ได้มา 1 งาน Extracting the Object from the Shadows: Maximum Likelihood Object/Shadow Discrimination ตีพิมพ์ใน IEEE ECTI-CON 2013 ผ่าน
  4. Learn more mathematics.
    ไม่ได้เรียนรู้อะไรเพิ่มเติมเป็นชิ้นเป็นอันเลย เศร้าแท้ ไม่ผ่าน
  5. Learn more theory.
    ทำไม่ได้ตามที่ตั้งไว้.. ไม่ผ่าน
  6. Learn a new programming language.
    ปีนี้ขอ Ruby on Rails ไว้ ไม่ได้ทำเต็มตัวแต่ที่บริษัทก็เอา Ruby มาใช้ และตอนนี้เขียน Test พอเป็น ก็ถือว่าผ่านนะ
  7. Complete a personal project.
    ได้แต่คิดไว้ 2 โปรเจค แต่ไม่ได้เริ่มทำ ไม่ผ่าน
  8. Go analog.
    ไม่ได้ทำกับข้าวเองเลย แต่ปั่นจักรยานกับวิ่งเยอะขึ้น ทำกับข้าวไม่ค่อยซีเรียส ข้อนี้ผ่านละกัน 🙂
    endomondo-2013-summaryปั่นจักรยานไป 2,379 km
    วิ่งไป 91.37 km
  9. Stay healthy.
    ผลจากข้อข้างบน ปี 2013 เท่าที่จำได้.. เป็นหวัดปวดหัวแค่ครั้งเดียว ไม่ถึงกับต้องลาป่วย เย้ ผ่าน
  10. Read at least one fiction or autobiography book.
    ว่าจะอ่าน Obama: From Promise to Power ให้จบ แต่ก็อ่านไปได้หน่อยเดียว ไม่ผ่าน
  11. Learn new software or tool.
    ไม่ได้แตะ Tableau กับ D3 เลย ไม่ผ่าน
  12. Automate.
    เรื่อง cron ยังไม่ได้ศึกษา ได้เล่น shell script บ้าง ส่วนสคริปที่เอาไว้ช่วยในการเขียนบทความก็ยังไม่มีโอกาสได้ลอง เนื่องจากเนื้องานออกแนวเขียนโปรแกรม ซึ่งก็ได้เรียนรู้อย่างอื่นแทน เช่น Jenkins  Fabric Vagrant และ Puppet ถือว่าผ่าน

จาก 12 ข้อ ทำได้ 7 ข้อ คิดเป็น 58.33% เกินครึ่งมาแบบฉิวเฉียด จากที่ผ่านมาทำให้รู้ว่าเราตั้งเป้าหมายไว้เยอะเกินไปหน่อย ทำไม่ได้ตามที่หวังไว้มันจะเจ็บปวดใจ ฮึ่ย >_< ปีหน้าจะ commit เท่าที่จะสามารถทำได้แหละ

ลองเขียน MapReduce กัน

ก่อนหน้านี้เขียนถึงหลักการทำงานของ MapReduce ไปแล้ว คราวนี้มาลองลงมือเขียนโค้ดกันเลยดีกว่า ปกติแล้วการเขียน MapReduce เพื่อเอาไปใช้กับ Hadoop เราจะเขียนด้วย Java แต่ Hadoop นั้นมี API ตัวหนึ่งที่ทำให้เราเขียน MapReduce ด้วยภาษาอะไรก็ได้ Yes! และ API ตัวนั้นก็คือ Hadoop Streaming นั่นเอง ซึ่งตัวมันจะใช้ Unix standard streams เป็น interface ระหว่าง Hadoop กับโปรแกรมของเรา ดังนั้น.. ภาษาอะไรก็ตามที่สามารถอ่าน standard input และเขียนใส่ standard output ได้ ภาษานั้นก็สามารถใช้เขียน MapReduce ได้! (-/\-) กราบ

ใครก็ตามที่ผ่านเข้ามาอ่านบทความนี้ ไม่ต้องกังวลว่าจะต้องไปลง Hadoop บนเครื่องตัวเองนะครับ ขอแค่คุณใช้ระบบปฏิบัติการที่เป็น Linux ก็พอ ก็สามารถทำตามได้ (ถ้าใครใช้ Windows ก็ใช้ Cygwin แทนเนอะ)

Continue reading "ลองเขียน MapReduce กัน"