Blog

Swiftlet provides knowledge in software development and practice in Thai to open more opportunities for Thai developers and others to improve their skills in Thai context.

Data Migration

ณัฐธิดา  หมวดเพ็ชร [ 15 มิถุนายน 2558 ] Data Migration เป็นกระบวนการของการถ่ายโอนข้อมูลระหว่างประเภทการจัดเก็บข้อมูลหรือระบบคอมพิวเตอร์ เป็นสิ่งหนึ่งที่สำคัญในการพิจารณาที่จะอัพเกรดระบบของตนเอง และมักจะเป็นการดำเนินการแบบอัตโนมัติโดยโปรแกรมมากกว่าการดำเนินการโดยมนุษย์ Data Migration เกิดขึ้นจากหลายสาเหตุ รวมไปถึงเซิร์ฟเวอร์หรือการเปลี่ยนอุปกรณ์ในการจัดเก็บข้อมูล การบำรุงรักษาหรือการอัพเกรดข้อมูล การย้ายแอพพลิเคชั่น อาจรวมไปถึงการย้ายศูนย์การให้บริการข้อมูล การใช้งาน Data Migration 1. เริ่มจากการติดตั้งโดยการเพิ่ม gem เข้าไปในโปรเจค แล้วสั่ง bundle install 2. การสร้าง migration ด้วยคำสั่ง 3. ไฟล์ของการ migrate จะประกอบไปด้วย 2 ส่วน คือ self.up >> เป็นการอัพเดตข้อมูลหรืออัพเดตโปรแกรม self.down >> เป็นการย้อนเวอร์ชันกลับไปก่อนหน้า ในกรณีที่การอัพเดตไม่เป็นไปตามที่ต้องการ 4. จากนั้นใช้คำสั่ง rake db:migrate [ ศึกษาเพิ่มเติมได้ที่ https://github.com/ajvargo/data-migrate ]

Data Migration Read More »

Rails Translation

โดย แสงเดือน จันทร์ใหม่ – 14 มิถุนายน 2558 Rails Translation คืออะไร Translation (Rails Internationalization (I18n) API) คือ Gem ตัวหนึ่งของ Ruby ซึ่งจะติดตั้งมาให้อยู่แล้ว โดยที่เราไม่ต้องติดตั้งเองเพิ่มเติม โดย Rails Translation ทำหน้าที่ในการช่วยจัดการให้ application มีการแสดงผลได้หลายภาษา แม้จะไม่ต้องติดตั้ง Gem เพิ่มเติม แต่ก่อนจะใช้งาน Translation ได้ต้องมั่นใจว่า application support I18n Rails Translation ใช้งานอย่างไร การใช้งาน Translation มีส่วนที่สำคัญ 3 ส่วน คือ ส่วนสำหรับกำหนดค่าในการแสดงผลของแต่ละภาษา หรือถือเป็น dictionary สำหรับการแปลภาษานั่นเอง ประกอบด้วยไฟล์ .yml ซึ่งวางไว้ใน config/locales โดยชื่อไฟล์เป็นชื่อของภาษาเพื่อเรียกใช้งานได้ง่าย ภายในไฟล์ประกอบด้วย

Rails Translation Read More »

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 »