Arthit Hongchintakul

OOP และ Data Driven

อนรรฆ อำไพวิทย์ – 1 มิถุนายน 2558 OOP OOP หรือ Object Oriented Programming คือการเขียน code โดยการมองทุกสิ่งให้เป็น Object ที่มีคุณสมบัติของตัวเอง และสามารถนำ Object นี้ไปใช้งานได้เมื่อไหร่ก็ได้ตามต้องการ โดยไม่ต้องเขียนการทำงานนั้นใหม่ทั้งหมด คุณลักษณะของ OOP Inheritance :  คือการที่ object สอง object สามารถมีความสามารถสืบทอดกันได้ เช่น object สิ่งมีชีวิต นั้นมีความสามารถในการเคลื่อนที่ได้ ดังนั้น object มนุษย์ หรือสุนัข ก็สามารถสืบทอดมาจาก สิ่งมีชีวิตได้ เนื่องจากมีความสามารถเดียวกัน แต่ object ที่มีความสามารถเหมือนกัน ภายในอาจมีความสามารถเพิ่มเติมก็ได้ และในความสามารถเดิมที่มีก็สามารถมีรายละเอียดเพิ่มเติมได้ เช่น มนุษย์ และ นก สืบทอดมาจาก สิ่งมีชีวิต ซึ่งมีความสามารถในการเคลื่อนที่ แต่นก จะสามารถเคลื่อนที่ได้ด้วยการบินด้วย เป็นต้น […]

OOP และ Data Driven Read More »

MongoDB Aggregation

ณัฐธิดา  หมวดเพ็ชร MongoDB Aggregation Aggregation เป็นขั้นตอนของการรวบรวมข้อมูล โดยสามารถรวบรวมข้อมูลที่ได้มาจากหลายๆที่ให้อยู่ร่วมกันเป็นกลุ่มข้อมูลเดียวกัน และยังสามารถเพิ่มความหลากหลายในการรวบรวมข้อมูลได้ ซึ่งจะ return ผลลัพธ์ที่ได้จากการคำนวณกลับมาให้ โดยผลลัพธ์ขึ้นอยู่กับการ input ข้อมูลและการเจาะจงข้อมูล Aggregation Pipelines คือวิธีแบบหนึ่งของ aggregation ซึ่งเป็น framework ตัวหนึ่งสำหรับการรวบรวมข้อมูลในรูปแบบแนวคิดของการประมวลผลข้อมูลแบบท่อ ที่ส่งต่อไปได้เรื่อยๆ โดยสามารถส่งต่อได้หลายๆ stage เพื่อแปลงเป็นผลลัพธ์ที่ถูก aggregate แล้ว Aggregation Pipeline ประกอบไปด้วย stages ซึ่งแต่ละ stage จะทำการเปลี่ยนแปลงเอกสารที่ผ่านมาทาง pipeline เพราะฉะนั้น pipeline stage ไม่จำเป็นต้องผลิตเอกสารการส่งออกอย่างใดอย่างหนึ่งสำหรับทุกๆการป้อนข้อมูล MongoDB ได้ให้ method การ aggregate คือ db.collection.aggregate( [ { <stage> }, … ] ) และให้คำสั่งในการ aggregate สำหรับ aggregation

MongoDB Aggregation Read More »

Big data ข้อมูลขนาดใหญ่

Chamnan Longlum 2 june 2015 Big data คือข้อมูลขนาดใหญ่มากๆ ตั้งแต่ Terabyte ขึ้นไป โดยข้อมูลนั้นอาจจะมาจาก log ของ ระบบ  , mobile device หรือแม้แต่ข้อมูลชั้นดีอย่าง Social Network ต่างๆ โดยที่ Bigdata จะประกอบด้วย3 ส่วนสำคัญคือ 1. Volume :จำนวนของข้อมูลใหญ่   ข้อมูลในส่วนนี้ถ้าจะยกตัวอย่างที่เห็นได้ชัดๆเช่นข้อมูลที่มาจาก social network ไม่ว่าจะเป็น twitter , facebook , instagram หรือจะเป็นข้อมูลการเช็คอินต่างๆ  ข้อมูลจากช่องทางนี้จะเห็นว่าผู้คนมีการใช้ทุกวัน ตลอดเวลา ทำให้ข้อมูลดังกล่าวมากขึ้นๆ ใหญ่ขึ้นๆ จนต้อมีระบบในการจัดเก็บข้อมูลขนาดใหญ่ขนาดนั้นได้ 2. Variety :ความหลากหลายของข้อมูล ข้อมูลนี้อาจจะเป็นได้ทั้งตัวอักษร (text) , SQL , JSON ,

Big data ข้อมูลขนาดใหญ่ Read More »

การใช้งานคำสั่ง mapReduce ใน MongoDB

[ นายวุฒิไกร ลิ่มสกุล : 31/05/2558 ]    การใช้งานคำสั่ง mapReduce ใน MongoDB         คำสั่ง mapReduce เหมาะสำหรับการประมวลผลข้อมูลขนาดใหญ่ จะเน้นการทำสรุปข้อมูลปริมาณมากๆ โดยถูกหยิบยกขึ้นมาแนะนำครั้งแรกโดย Google และใน MongoDB ก็ได้นำ เทคนิค Map Reduce เข้ามาเป็นฟีเจอร์หนึ่งในฐานข้อมูล เช่นเดียวกัน แต่เนื่องด้วยเจ้า Javascript Engine ของ MongoDB หรือที่เรียกว่า Spider Mokey ไม่สนับสนุนการทำงานแบบ Thread จึงทำให้การใช้งานคำสั่ง mapReduce ใน MongoDB เร็วสู้ฐานข้อมูลเจ้าอื่นไม่ได้อย่างเช่น Hadoop             คำสั่ง mapReduce ประกอบด้วยการทำงาน 2 ขั้นตอน

การใช้งานคำสั่ง mapReduce ใน MongoDB Read More »

Mongoid (Map/Reduce & Aggregations)

โดย แสงเดือน จันทร์ใหม่ – 1 มิถุนายน 2558 Mongoid Map/Reduce และ Mongoid Aggregations ถือเป็นหนึ่งในการ Query ข้อมูลของ Mongoid โดยสามารถอธิบายการทำงานได้ดังนี้ Mongoid Map/Reduce Map/Reduce ถือเป็นการ join ข้อมูลจากตารางข้อมูลในฐานข้อมูล แต่มีความยืดหยุ่นและการดำเนินการที่หลากหลายกว่า Map เป็นการ join ข้อมูลในฐานข้อมูลจากหลายๆ ตารางที่เก็บแยกกัน ให้กลายเป็นหนึ่งตารางที่มีปริมาณข้อมูลในแต่ละ record ประกอบด้วย field ข้อมูลจำนวนมากขึ้น ที่มีความสัมพันธ์กัน Reduce เป็นการนำผลลัพธ์จากการ Map มาคัดกรองให้เกิดเป็นผลลัพธ์ที่ตรงตามความต้องการมากขึ้น ทั้งนี้การ Reduce ของ Mongoid สามารถทำได้หลากหลายวิธี รวมทั้งการ Aggregate ด้วย Mongoid Map/Reduce มีพื้นฐานมาจาก Mongo Map/Reduce คือประกอบด้วยฟังก์ชั่น 2 ฟังก์ชั่น

Mongoid (Map/Reduce & Aggregations) Read More »

Prevent Hacking By Hardening

Chamnan Longlum 18 May 2015 Hardening คือการทำให้แข็งขึ้น ในระบบคอมพิวเตอร์จะหมายถึงการทำให้ระบบยากต่อการถูกแฮคมากขึ้น โดยจะบทความนี้จะเน้นไปที่ Linux เป็นหลักซึ่งวิธีการดังนี้ – ตั้งพาสเวิร์ด GRUB grub จะเป็นโปรแกรมสำหรับจัดการขั้นตอนการบู๊ทระบบในlinux (เช่นเดียวกับที่ windows มี MBR) grub ในLinux สามารถทำให้ผู้ไม่หวังดีสามารถเข้าถึง Single user mode เพื่อแก้configแต่ละอย่างกับตัวเครื่อง (เช่น reset root password)ได้ เพราะฉะนั้นการตั้งรหัสไม่ให้เข้าถึงgrubก็จะเป็นการปลอดภัยกับผู้ไม่หวังดีมากขึ้น – ใช้แพกเก็จให้เพียงพอกับที่ใช้ ไม่เปิดลงpackageที่ไม่ได้ใช้ และpackage ที่ไม่จำเป็นี่สุ่มเสี่ยงต่แการถูกแฮ็คเช่น smb (samba server) , cups , FTP (ควรใช้ scp  หรือ FTPS แทน) เพื่อลดช่องโหว่ที่จะถูกแฮ็คได้ฃ – Disable Ctrl+ Alt+ Delete

Prevent Hacking By Hardening Read More »

Bundler & Gem คู่พิฆาต Dependencies

Posted on May 14, 2015 By Anak Umpaivit Bundler คืออะไร?           Bundler คือ สิ่งที่ใช้ในการจัดการ Gem ที่ต้องการนำมาใช้กับ Ruby Application ที่เราพัฒนา โดยติดตามความเคลื่อนไหว และติดตั้ง Gem ต่างๆ ตามที่ตั้งค่าไว้ รวมถึงสามารถกำหนด Version ของ Gem ที่ต้องการได้ สามารถดูรายละเอียดเพิ่มเติมได้ที่ http://bundler.io/ Gem คืออะไร?           Gem ใน Ruby เปรียบเสมือน Plugin เสริมที่ช่วยในการพัฒนา Application แต่ใช้การตั้งชื่อเรียกให้เข้ากับชื่อ Ruby (Ruby: ทับทิม, Gem: อัญมณี) โดย Gem จะเป็นเหมือน Feature ที่ผู้ใช้งานสร้างขึ้น และบีบอัดเป็น Gem เพื่อใช้งาน

Bundler & Gem คู่พิฆาต Dependencies Read More »

“HAVEN” เทคโนโลยีปกป้องบ้าน

          HAVEN เทคโนโลยีปกป้องบ้าน… วุฒิไกร ลิ่มสกุล [17 พฤษภาคม 2558] นี่คือวิธีการในการรักษาความปลอดภัย ให้กับบ้านของคุณ โดยเทคโนโลยีที่ชื่อว่าโดยที่ HAVEN จะถูกติดไว้กับพื้น และกรอบประตู เมื่อคุณเปิดประตู มันสามารถปลดล็อคส่วนที่ติดแน่นอยู่กับพื้น และคุณสามารถเปิดประตูได้อย่างปกติ โดยไม่จำเป็นต้องใช้กลอนประตู หรือกุแจในการล็อคประตูและปลดล็อคประตู HAVEN ถูกสร้างโดย Alex Bertelli อดีตนายทหารเก่าที่ผันตัวมาเป็นนักพัฒนาธุรกิจส่งออกในรัฐ Tennessee และเป็นผู้ประกอบการ serial entrepreneur Clay Banks โดยได้พัฒนาระบบ ที่ใช้โทรศัพท์มือถือ หรือ Key fob ในการเปิด และปิดประตู HAVEN ถูกผลิตขึ้น ในประเทศสหรัฐอเมริกา และมี glass-filled nylon polymer, เหล็ก และอลูมิเนียม เป็นส่วนประกอบ พวกเขา วางแผนที่จะประกอบ HAVEN ขึ้นในรัฐ Tennessee และถือหุ้นบริษัท Kickstarter ซึ่งสำนักงานใหญ่ของบริษัท ตั้งอยู่ในเมือง Nashville คุณสามารถหาข้อมูลเพิ่มเติมได้ที่ havenlock.com ที่มา: techcrunch.com

“HAVEN” เทคโนโลยีปกป้องบ้าน Read More »

การใช้ Bower ควบคู่กับ Rails

Posted on May 18, 2015 By Karun Siritheerathamrong เพราะ Rails 4 เป็นสุดยอด Web Framework ที่มีพลังเยอะมหาศาล.. จนบางครั้งการทำอะไรๆ ด้วย Rails มันช่างง่ายดายเสียเหลือเกิน เช่นการติดตั้งเว็บไลบรารีต่างๆ โดยการบอกว่าจะใช้ไลบรารีอะไรใน Gemfile แล้วก็เรียกใช้งานผ่าน Asset Pipeline ได้เลย ตัวอย่าง: การใช้ AngularJS กับ Rails ด้วย gem ชื่อ ‘angularjs-rails’ – ที่นี่ ที่เป็นเช่นนี้ได้ เพราะนักพัฒนาหลายๆ คนช่วยกันสร้าง gem ที่บรรจุไลบรารีต่างๆ ไว้ แล้วก็อัพโหลดให้เราได้ใช้ แล้วถ้าไลบรารีเหล่านั้นมีการอัพเดต (ซึ่งถี่ยิบๆๆๆ มาก) แล้ว gem ต่างๆ ที่บรรจุไลบรารีที่ใช้งานอยู่ ยังไม่อัพเดตเวอร์ชั่นตามไปล่ะ? ปัญหาจะเริ่มตามมาทันที Bower —

การใช้ Bower ควบคู่กับ Rails Read More »

ทำไมเราถึงต้องใช้ TDD ?

ณัฐธิดา  หมวดเพ็ชร [17 พฤษภาคม 2558]   TDD คืออะไร? TDD ย่อมากจาก Test Driven Development คือ รูปแบบการพัฒนาซอฟต์แวร์ที่ช่วยลดความเสี่ยงของความผิดพลาด ทำให้ Code มีประสิทธิภาพมากขึ้น อีกทั้งยังเป็นการลดการเกิด Bug อีกด้วย   ในการทำ TDD มีขั้นตอนอะไรบ้าง? การสร้าง Test >> ในขั้นตอนการสร้าง Test นี้ อย่างแรกต้องทราบว่า Project นั้นทำอะไรได้บ้าง แล้วจึงสร้าง Test เพื่อเป็นการตรวจสอบว่าทำงานได้ถูกต้องหรือเปล่า Run test ที่สร้าง >> นำ Test ที่สร้างไว้จากขั้นตอนที่แล้วมา Run ซึ่งผลลัพธ์ที่ออกมาควรจะไม่ผ่าน เพราะยังไม่ได้เริ่มเขียน Code จริง การเขียน Code >> เป็นขั้นตอนการเขียน Code จริงของ Project นั้น Run Test

ทำไมเราถึงต้องใช้ TDD ? Read More »