ต้นทาง ปลายทาง กับผลลัพธ์

ทำไมเราคุยกับคนกลุ่มหนึ่งได้อย่างไหลลื่น แต่อีกกลุ่มกลับติดขัด?
เราผิดเขาถูก หรือ เราถูกเขาผิด ใครตอบได้?
ง่ายที่สุดแก้ที่เรา แต่จะเริ่มยังไง?

หัดเข้าใจความหลากหลายของคนบ้าง ถ้าอยากจะสื่อสารกับคนอื่น
คือสิ่งที่ได้จากการเรียน DISC กับ อ.นำ้ตาล กับ คุณนำ้ฝน ที่ geeky base

คำถามที่ค้างอยู่ในใจมานานก็ได้คำตอบ

สิ่งที่พยายามสื่อสารให้กับคนฟังบ่อยครั้ง ทำไมกลับมาด้วยคำตอบ ไม่รู้เรื่อง
เพราะเลือกที่จะสื่อสารในรูปแบบที่ไม่ตรงกับลักษณะ และพฤติกรรมของผู้ฟัง
จนทำให้เค้ารู้สึกไม่สบายใจ ไม่สนุกที่จะสื่อสารกับเราต่อ

จากข้อมูลต้นทางชุดเดียวกัน ปรับไปหาปลายทาง ตามกลุ่มของคนที่เราต้องการจะสื่อสาร
เพื่อให้การสื่อสารไม่สะดุด ได้ละสิ่งที่ต้องทำให้ได้ในปีนี้

ผลลัพธ์ก็ยังไม่รู้ว่าจะเป็นไง ดีขึ้นเลวลง ลงมือทำแล้วกลับมามองดู
จะยังไงต่อค่อยว่ากัน แค่นี้แหละที่ต้องการ

mongodb 1

ก่อนอื่นไป download mongodb ทีนี่ download (สำหรับคนที่ใช้ ubuntu ก็เรียก apt-get mongodb ได้เลย)
จากนั้นก็จะเป็นขั้นตอนการ install หลังจาก download เสร็จเรียบร้อยก็ทำการ extract file จะเอาไว้ที่ไหนก็ตามอัธยาศัย
ซึ่ง ข้างใน file ที่เรา extract จะมี folder ที่ชื่อ bin อยู่ ซึ่งจะมี execute file อยู่เพียบ แต่ตัวที่จะใช้ ตอนแรกสุดคือ mongod เราก็จัดการ start mongodb

./mongod

ถ้าโชคดี มันก็จะ run ได้ แต่ปัญหาที่เจอคือมันหา path ที่เก็บข้อมูลไม่เจอ ก็แก้ปัญหาด้วยการ สร้าง file config ขึ้นมา ผมตั้งชื่อว่า mongodb.config แล้วจัดการกำหนด path ที่ใช้เก็บ data ซะ ตัวอย่าง

dbpath=/home/xxx/nosql/mongodb/data

จากนั้น ก็ทำการ start อีกรอบ แต่จะเพิ่ม param เข้าไปด้วย

./mongod --config pathTo/mongodb.config

ถ้าไม่ซวยซับซวยซ้อน mongodb มันก็จะ start เสร็จสมอารมณ์หมาย จะไม่สร้าง file config ก็ได้แต่ ต้องกำหนดไปตอนสั่ง start เลยอย่างนี้

./mongod --dbpath pathTo/data

หลังจาก start ขึ้นแล้วเราก็จะเข้าไปคุ้ยแคะแกะเกาว่ามีอะไรให้เล่นมั่ง ก่อนอื่นก็เปิด terminal มาอีกตัวแล้วพิมพ์

./mongo

มันก็จะบอกรายละเอียดว่า mongo shell ที่เราใช้  version ไหน กับ db ที่เราใช้อยู่ชื่ออะไร (default จะเป็น db ที่ชื่อ test)  แต่ก็เรียกดูได้ ว่าเราใช้ db ชื่ออะไรอยู่โดยพิมพ์

db.getName()

แต่ mongo ก็มี help ซึ่งช่วยชีวิต ได้มาก ในกรณีที่ ไม่รู้ว่ามีคำสั่งอะไรมั่ง ตามความรู้สึกผม มันมี help อยู่ 4 ระดับ ใหญ่ๆ คือ ของ app, db, collection และ replica ซึ่ง ระดับ app เราก็พิมพ์

help

โดดๆไปเลยมันก็จะ list คำสั่งออกมาก ส่วน ตัวอื่นก็จะใช้

db.help()
db.mycollection.help()
rs.help()

มั่วกันต่อถ้าพิมพ์

show dbs

ก็จะแสดง db ที่มีอยู่ ถ้าจะ switch  ไปใช้ตัวไหน ก็พิมพ์

use dbName

ซึ่งถ้า ไม่มีชื่อนี้อยู่มันก็จะสร้างให้เลย หลังจากนั้นเราก็ดูอีกว่ามันมี collection อยู่รึเปล่า

db.getCollectionNames()

ถ้ามันไม่มีก็จะแสดงผล [ ] เพราะว่ามันไม่มีห่าอะไรนั่นเอง ปัญหาถัดมาเราจะสร้าง collection จะทำยังไง จัดการ

db.test.insert({name:"test"})

ตามด้วย

db.getCollectionNames()

อีกทีผลลัพธ์มันก็จะไม่ว่างเปล่าอีกต่อไปฮ่าๆๆ เพราะมันจะทำการสร้าง collection ชื่อ test พร้อมกับ insert ข้อมูลให้ ถ้าจะดูว่า ข้อมูลมันถูก insert จิงเปล่าก็ จัดการ

db.test.find()

ซึ่งถ้าอยากลองเล่น  mongodb ที่เป็น tutorial online ก็ไปที่นี่ได้เลย

ถ้าจะออก จาก mongo shell ก็พิมพ์ exit แต่ถ้าจะ shutdown mongodb ก็

db.shutdownServer()

แต่ต้องเปลี่ยนไปใช้ admin database ก่อนวิธีเปลี่ยนก็

use admin

(จะเห็นว่า ทำไมมันใส่ username password เลยแล้วมันจะ secure รึเปล่า เนื่องจากตัวที่ทำอยู่มันเป็น trusted environment คืออยู่ในขั้นคุ้ยแคะแกะเกามันก็เลยเป็นอย่างที่เห็น)

คุยกับตัวเอง

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

set up pentaho

Pentaho Architecture

  1. Presentation Layerเทคโนโลยี หลักที่ใช้คือ GWT แต่ ในส่วนของ dashboard โดยเฉพาะ CDF (community dashboard framework) จะใช้ Jquery จะเข้ามาร่วมด้วยในการแสดงผล
  2. Business Logic Layerตัวหลักในการทำงานของ Pentaho BI Server คือ ตัว work flow ของ pentaho ที่ จะทำการจัด sequence ของ งานที่เกิดขึ้น เช่น การ ดึงข้อมูล จัดระเบียบข้อมูล จนถึง การส่ง output ไปให้ report engine หรือ web engine ทำการ render output ออกมาในรูปแบบ ต่างๆ (HTML, pdf, excel, wsdl)
  3. Data Layerแบ่ง ได้เป็น 2 กลุ่มใหญ่ๆ คือ ส่วนที่จัดการ user และ role ซึ่งจะทำการ config ผ่านไฟล์ (xml และ properties) และสุดท้ายส่วนที่ใช้ในการจัดการข้อมูลที่จะนำมา ประมวลผล(ออก reportทำ cube) Pentaho จะใช้ JNDI ในการ lookup ตัว DB ต่างๆที่ใช้งานซึ่งสามารถจัดการ data source ทั้งการเพิ่มและลบผ่านทาง web interface
  4. Cachedehcahed คือ engine ที่ใช้ใน Pentaho ที่จะทำการ cache data จาก การสร้าง cube หรือการดึงข้อมูลจาก DBลักษณะการทำงานก็จะใช้ key กับ value ในการเก็บข้อมูล และสามารถที่จะกำหนดได้ว่า จะเก็บกี่ instance ใน memory หรือเมื่อมีข้อมูลมากกว่าที่กำหนดจะ เก็บเป็นไฟล์ ที่ Directory ไหนขนาดเท่าไหร่

ในเบื้อง ต้นการทำงานจะทำในเครื่องเดียว แต่ถ้ามีงานที่มากขึ้นหรือ ข้อมูลมีขนาดใหญ่ขึ้น เราสามารถที่จะกระจายการประมวลผลหรือกระจายการเก็บข้อมูลไปที่เครื่องอื่น โดยการปรับ flow การทำงานในชั้น Business Logic Layer และการเพิ่มหรือเปลี่ยน data source

ความต้องการพื้นฐาน

  1. Hardware : cpu(recommend 64 bits) ขั้นต่ำ 2 GHz , RAM ขั้นต่ำ 2 GB, HD ขั้นต่ำ 2 GB
  2. OS: any
  3. Software : ขั้นต่ำ java 1.5 (recommend 64 bits version ถ้า cpu เป็น รุ่น64 bits)
  4. Database : !MySQL, Postgresql, !MsSQL, Oracle หรืออื่นๆที่มี jdbc driver

Read More »

introduction to Pentaho

overview

Pentaho เป็นระบบที่ให้บริการ เรื่องการทำ report ทั้งในแบบของ operation report หรือ analytic report โดยถ้ามองจากมุมมองการใช้งานสามารถแบ่งได้เป็น 2 แบบ คือ

front end ที่ผู้ใช้งานของระบบสามารถเข้ามาใช้บริการ เช่น การเรียกดู report หรือ การเรียกดูข้อมูลเชิงลึก ตามแต่มิติที่มีความสำคัญต่อข้อมูลนั้นๆเช่น เวลา, ลูกค้า, สินค้า และอื่นๆ และ การดูแนวโน้ม หรือทิศทางที่เกิดขึ้นจากการคำนวณของระบบ

back end ส่วนงานนี้จะเป็นส่วนที่ให้ ผู้ดูแลระบบ เป็นคนจัดการงานต่างๆคือ

ระบบการนำเข้าข้อมูล การปรับรูปแบบข้อมูล(Extract Transform and Load data) จะทำการประมวลผลให้ข้อมูลอยู่ในรูปแบบที่เป็นมาตราฐานกลางของงานนั้น หรือเหมาะสำหรับนำการไปประมวลผลในลำดับต่อไป

การวิเคราะห์ประมวลผลข้อมูลเพื่อหาแนวโน้มและ ผลลัพธ์ตามแต่วัตถุประสงค์ที่จะตอบสนองหน่วยธุรกิจหรือองค์กร

ระบบการกำหนดตารางการทำงานของระบบscheduling (sent email, job schedule) จะสั่งให้ระบบทำงานตามเวลาที่ได้ตั้งค่าไว้ ตัวอย่างเช่น การส่ง report ให้ผู้ใช้งานทางemail หรือ การดึงข้อมูลจากระบบอื่นๆที่เกี่ยวข้องตามเวลาที่กำหนด

ระบบจัดการเรื่องสิทธิ์และการเข้าถึงบริการ(user management)ที่ application มีอยู่ของผู้ใช้งาน

ระบบการจัดการ การจัดเก็บ report template, job and action flow และcached (repository and cached management)

tools

Kettle (Data Integration / ETL) เครื่องมือที่ใช้สำหรับออกแบบการนำเข้าข้อมูล และการปรับรูปแบบข้อมูล

schema workbench(cube designer) เครื่องมือที่ใช้สำหรับออกแบบ cube เพื่อให้ง่ายต่อการมองข้อมูลในรูปแบบที่เป็นมิติ

report designer(jfree report) เครื่องมือที่ใช้สำหรับออกแบบรูปแบบ ของ report ที่จะให้แสดงผลในรูปแบบต่างๆ

design studio(work flow designer) เครื่องมือที่ใช้สำหรับออกแบบ flow ของการทำงานที่สามารถจะเชื่อมต่อ service ที่ pentaho application จัดไว้ให้ออกมาเป็น flow ของการทำงาน ซึ่งผลลัพธ์ก็มีหลากหลาย ตามที่เรากำหนดเช่น excel, pdf report หรือข้อมูล ใน database

Weka (Data Mining)

software requirement

  1. jre1.5 ขึ้นไป
  2. dbms (mysql 5, postgresql, oracle)
  3. web container tomcat version 5(optional ในกรณีที่ build application เอง)

ปล. กรุณาเช็ค version ของ java ที่ใช้ build ตัว pentaho ด้วยเพื่อที่จะได้ใช้ java version ตัวเดียวกัน เพื่อลดปัญหาอันไม่พึงประสงค์ เหอๆๆ (write once run anywhere!)

Hobart Tasmania

18-03-09_14081

วันส่งขึ้นเครื่อง ญาติโยมแห่กันมาส่ง(พร้อมแขกพิเศษ)เพียบ บรรยากาศเหมือนงานรวมศิษย์เก่าคุยกันแหย่กันไปเรื่อย แต่จังหวะเข้า Gate ไปนี่สิ มันของจริงแล้วต้องลุยเดี่ยว นับตั้งแต่จังหวะนั้น ไม่มีแล้วครับ คนไทยภาษาไทย ฝรั่งลูกเดียว เพราะขึ้นสายการบิน qantas ฝรั่งล้อมหน้าล้อมหลัง

นั่งได้สักพัก แอร์ ก็ถามจะรับเครื่องดื่มอะไร heineken ก่อนเลยจะได้หลับสบาย หลังจากนั้นก็ตบด้วย ไวน์ สบายตัวไปเลยตื่นอีกทีที่ sydney เพื่อเปลี่ยนเครื่อง แต่ติดขัดเล็กน้อยเพราะต้องไปเปลี่ยนเครื่องที่ Domastic Terminal ตอนแรกเข้าใจว่านั่งรถ bus ของ qastas ได้เลยพอยื่นตั๋วให้เจ้าหน้าที่ เค้าก็บอกให้ไปขึ้นรถบัสของสนามบินที่นี่ อาการรนก็เกิดขึ้น แต่โชคดีที่ป้ายสัญลักษณ์ ของสนามบินเค้าชัดเจนมากเลยไปถูกRead More »

เปิดหมวก

“ตัดใจอยู่ต่อว่ายาก ตัดสินใจไปยากกว่า”

ความรู้สึกที่ผูกพันกะอะไรซักอย่าง ที่ๆคิดว่าเหมาะกับตัวเอง แต่ชีวิตมันก็ไม่มีอะไรง่ายเหมือนอะไรที่เราคาดหวังไว้ เพราะเหรียญมันมีสองด้านเสมอ ถ้าเปรียบเหมือนเรือที่ต้องเดินทางกลางทะเล ก็คงเหมือนเป็นเรือที่มีชีวิตชีวา ไม่กลัวคลื่นลมมรสุม สามรถบุกตะลุยได้ตลอดถึงไหนถึงกัน

แต่ก็นั่นแหละความแน่นอนคือความไม่แน่นอน จังหวะถ้ามันจะเจออะไรหนักมันมักเบรคไม่อยู่จิงๆอย่างประโยคที่ว่า If anything can go wrong, it will. เหมือนพายุแรงๆอัดเข้ามาไม่หยุดไม่ให้พักหายใจ มันก็มีสิทธิ์ล้าเอาได้ง่ายๆ แต่มันก็เป็นมนต์เสน่ห์อย่างหนึ่งของชีวิต

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

บทสรุปของชีวิต คือความ “อจีรัง” ทุกอย่างไม่เที่ยง ครับ

ลายแทงดอยช้าง

เรื่องมันมีอยู่ว่า นานๆจะได้กลับไปบ้าน เลยต้องหาโอกาสไปเที่ยวกับครอบครัว ซึ่งก็ได้ตั้งใจแต่แรกแล้วว่าจะไปดอยช้าง(จังหวัดเชียงราย) เพราะปีก่อนโน้นก็ไปแต่ยังไม่เต็มอิ่ม ก็เลยมีแมตซ์ รีเทิร์นอีกรอบ

ภาพเต็มๆดูได้ ที่นี่

Read More »

ไปอัมพวา กะ ลิลลี่จัง

ลิลลี่จัง

เกือบๆเที่ยงวันเสาร์(23 สิงหา 08) ช่วงที่กำลังนั่งเล่นอินเตอร์เนต ก็มีเสียงโทรศัพท์ดังขึ้นมา พอรับปุ๊บ

ปลายสาย “วันนี้ว่างเปล่าไปเที่ยวกัน”

ผม “ห๊า”

ปลายสาย “ห๊าเฮอะอะไร ก็บอกว่าไปเที่ยว”

ผม “ไป่ไหนว่ะ”

ปลายสาย “อัมพวา”

ผม “อืม แล้วกี่โมง”

ปลายสาย “ตอนนี้”

ผม “อ้าว แล้วมึงอยู่ที่ไหน”

ปลายสาย “ใต้หอมึง ฮ่าๆๆ”

ผม “อ้าว (ไอ้…..)”

ปลายสาย “รีบเลย เดี๋ยวต้องไปรับ ลิลลี่จัง อีก”

ผม “พัฒนาเว้ย  มีหญิงไปด้วย”

Read More »

พราย กลับมาแล้ว

หลังจากรอมานาน กับ อัลบั้มใหม่ของพราย โดยเสาร์ที่ 23 ก็จะมีคอนเสิร์ตเกิดขึ้น ที่อาจถือได้ว่าเป็นคอนเสิร์ตเปิดอัลบั้ม ก็นานพอดูกับการห่างหายไปจากวงการเพลงของ พราย สำหรับคนที่ไปดูคอนเสิร์ตก็คงจะได้ฟังงานชิ้นล่าสุด ส่วนผมอาจต้องรอเป็น CD เพราะยังไม่แน่ใจว่าจะได้ไปดูรึเปล่า Read More »