Arthit Hongchintakul

Duck Typing คืออะไร

Posted on July 17, 2015 By Karun Siritheerathamrong …Duck Typing คืออะไร?… Duck Typing เป็นลักษณะหนึ่งของการเขียนโปรแกรม ที่ไม่ได้พึ่งการทำงานแบบ Strong Typing มักปรากฏในภาษาโปรแกรมสมัยใหม่ที่เป็น Dynamic Language สำหรับ Strong Typing  ความเหมาะสมของออบเจ็กต์หรือตัวแปรในการใช้งาน จะถูกพิจารณาจากประเภทของออบเจ็กต์นั้น แต่สำหรับ Duck Typing แล้ว ความเหมาะสมของออบเจ็กต์หรือตัวแปรจะถูกพิจารณาจาก สิ่งที่ออบเจ็กต์นั้น “ทำได้” (method) และข้อมูลภายในที่ออบเจ็กต์นั้น “ถืออยู่” (attributes) คำว่า Duck Typing นี้มีที่มาจากคำว่า Duck Test ซึ่งเป็นการให้เหตุผลแบบ “อุปมาน” ที่อาจมีที่มาจากงานเขียนของ James Whitcomb Riley ที่ว่า “เมื่อฉันเห็นนกที่เดินแบบเป็ด ว่ายน้ำแบบเป็ด และร้องแบบเป็ด ฉันเรียกนกตัวนั้นว่า เป็ด” ตัวอย่างของโค้ดที่เป็นแบบ […]

Duck Typing คืออะไร Read More »

CoffeeScript คืออะไร? มาทำความรู้จักกันดีกว่า

โดย ณัฐธิดา หมวดเพ็ชร [16 กรกฎาคม 2558] CoffeeScript คืออะไร??? CoffeeScript คือ ภาษาที่เอาไว้สำหรับเขียน JavaScript ซึ่ง CoffeeScript จะช่วยให้สามารถเขียน JavaScript ได้สั้นลง เขียนง่ายขึ้น อ่านเข้าใจง่าย และ maintain ง่าย แต่สุดท้ายแล้ว CoffeeScript ก็จะถูกเปลี่ยนกลับไปเป็น JavaScript เพื่อนำไปใช้งานต่อไป ขั้นตอนการทำงาน สร้างไฟล์นามสกุล .coffee คอมไพล์ .coffee ให้กลายเป็น .js นำไฟล์ .js ไปใช้งาน การติดตั้ง CoffeeScript ก่อนอื่นเราจะต้องลงตัวคอมไพล์ ที่จะทำการแปลง .coffee มาเป็น .js ซะก่อน เพื่อที่ว่าเราจะได้ไม่ต้องไปเขียนไฟล์ .js อีก หากเรารัน .coffee เสร็จ ก็สามารถนำไปใช้ได้เลย โดยเราต้องทำการติดตั้งคำสั่งให้อุปกรณ์ของเรารู้จักกับไฟล์ .coffee ซะก่อน

CoffeeScript คืออะไร? มาทำความรู้จักกันดีกว่า Read More »

การเปรียบเทียบวันที่อย่างง่าย

การเปรียบเทียบวันที่ โดยปกติคนเราสามารถเปรียบเทียบวันที่ได้เอง โดยการเรียนรู้จากสมัยเด็กจนโด ได้อย่างง่ายดายอยู่แล้วโดยแทบจะไม่ต้องคิดเลย แต่การเขียนโปรแกรมเปปปรียบเทียบวันที่นั้น Computer ไม่สามารถที่จะรู้ได้ว่าวันที่อันไหน มาก่อนหรือหลัง วันนี้จะมีวิธีการเปรียบเทียบง่ายๆ โดยการใช้การเขียนโปรแกรมมาช่วยในการจัดการ รูปแบบของวันที่ จะเป็นรูปแบบไหนก็แล้วแต่ จะประกอบไปด้วย วันที่ เดือน ปี เป็นส่วนสำคัญ โดยเราจะนำเอาสามค่านี้ มาใช้ในการเปรียบเทียบวันที่ เช่น มีวันที่ ที่ต้อการเปรียบเทียบ คือวันที่ 5 มกราคม 2558 กับวันที่ 18 สิงหาคม 2558 หลักการของเราขั้นแรก ต้องแปลงรูปแบบของข้อมูลเป็นตัวเลขให้หมด จะได้ว่า 05/01/2558 มาจาก 5 มกราคม 2558 จากนั้นนำค่าาที่ได้มาเรียงใหม่เป็นรูปแบบ ปีเดือนวัน จะได้ว่า 25580105 การเขียนโปรแกรมเปรียบเทียบอย่างง่ายคือ การเปรียบเทียบตัวเลขของสองค่าว่าค่าไหนมีค่ามากกว่ากัน จากตัวอย่าง 25580105 กับ 25580818 เปรียบเทียบกันจะได้ค่า 25580818 มากกว่า แปลว่า 18 สิงหาคม 2558 มีค่ามากกว่า

การเปรียบเทียบวันที่อย่างง่าย Read More »

Cascading Style Sheets (CSS) Version

Cascading Style Sheets (CSS) Version CSS มีการทำออกมาทั้งสิ้นถึงปัจจุบัน (15/7/2558) 3 เวอร์ชั่น ได้แก่ CSS 1 CSS Version 1 คือเวอร์ชันแรกที่ออกสู่สาธารณะและเป็น W3C Recommendation ซึ่งออกในเดือนธันวาคมปีค.ศ. 1996 CSS 1 นั้นมีฟีเจอร์เพียงไม่มาก CSS 2 CSS Version 2 ออกในเดือนพฤษภาคมปีค.ศ. 1998 โดยเพิ่มเติมฟีเจอร์ให้กับ CSS 1 อย่างไรก็ตาม CSS 2 ไม่ประสบความสำเร็จมากนักในแง่ของการยอมรับ และการรองรับจากเว็บเบราว์เซอร์ต่างๆ ทำให้ CSS 2.1 ต้องออกมาเพื่อแก้ไขปัญหาต่างๆในเวอร์ชัน 2 CSS 2.1 ได้เป็น Recommendation ในเดือนกรกฎาคมปีค.ศ. 2007 CSS 3 CSS Version 3

Cascading Style Sheets (CSS) Version Read More »

Routing สำหรับ Rails กับการกำหนด Path อย่างง่ายให้ Resources

โดย นางสาวแสงเดือน จันทร์ใหม่ – 16 ก.ค. 2558 Routing for Resources Routing หรือการกำหนด route ให้ resources สำหรับ rails นั้นทำได้ง่ายๆ โดยการกำหนดค่าที่ไฟล์ routes.rb ในแอพพลิเคชั่น ซึ่งใน rails จะทำทำการ maps ระหว่าง HTTP เมธอด กับ action ของ controller ตาม route ที่เรากำหนด เราสามารถกำหนด route ได้ดังนี้ [code language=”ruby”] resources :recipes [/code] โดยค่า default ของ rails เมื่อประกาศ route ดังตัวอย่าง จะทำการ maps กับ method ของ

Routing สำหรับ Rails กับการกำหนด Path อย่างง่ายให้ Resources Read More »

แยก Ruby version/gemset ของแต่ละแอพออกจากกันด้วย RVM

Posted on July 16, 2015 By Karun Siritheerathamrong ต่อเนื่องจากโพสต์ก่อนหน้านี้เรื่อง วิธีติดตั้ง Ruby และ Rails อย่างง่ายด้วย RVM และ Bundler & Gem คู่พิฆาต Dependencies เมื่อเราพัฒนาหลายๆ แอพพลิเคชั่นพร้อมๆ กัน ก็มีโอกาสที่บางแอพฯ จะเรียกใช้ gem เดียวกันกับแอพฯ อื่นๆ แล้วจะทำให้เกิด “ปัญหา” ที่หลายๆ คน มองข้ามไป นั่นคือ….. การตีกันของ gem ต่างๆ ในระบบ ตัวอย่าง… โปรเจ็ก A ใช้ gem mongoid (สมมติให้ตอนติดตั้งเป็นเวอร์ชั่น 3.1.2) โค้ด / วิธีการ query ข้อมูล และ API เป็นไปตาม

แยก Ruby version/gemset ของแต่ละแอพออกจากกันด้วย RVM Read More »

Test Cases

Test Cases เขียนยังไงให้เข้าใจง่ายบน Capybara!

Posted on July 9, 2015 By Anak Umpaivit Capybara Test Cases แน่นอนว่า สิ่งที่ขาดไม่ได้สำหรับการทำ Automated test ก็คือ Test Scenario หรือ Test Cases นั่นเอง ซึ่งโดยปกติแล้ว Tester ส่วนใหญ่ก็น่าจะมีวิธีการออกแบบวิธีการ Test อยู่แล้ว อย่างการทำตาราง Given, When and Then เป็นต้น แต่ในการเขียน Capybara นั้น เราก็ต้องนำ Case ต่างๆ มาแยกเป็นข้อๆ และเขียนลงไปเช่นกัน แล้วจะเขียนยังไงดี? เขียนยังไงถึงจะถูก? เป็นคำตอบที่ตอบได้ยาก แต่จากประสบการณ์ของตัวผู้เขียนเอง ที่ผ่านการลองผิดลองถูกมาพอสมควร จะมาเสนอเทคนิคที่ใช้อยู่ในปัจจุบันให้ฟัง แต่ก่อนอื่น เราต้องมาดูก่อน ว่า Capybara นั้น มีรูปแบบการเขียน Test Cases

Test Cases เขียนยังไงให้เข้าใจง่ายบน Capybara! Read More »

seo

SEO WordPress ทำยังไงให้ Blog ติดอันดับ!

Posted on July 6, 2015 By Anak Umpaivit SEO คืออะไร? SEO ย่อมาจาก Search Engine Optimization อธิบายคร่าวๆ คือการทำให้ Website ติดอันดับการแสดงเมื่อมีคนค้นหาใน Search Engine อย่าง Google, Bing ฯลฯ นั่นเอง SEO นั้นเป็นสิ่งสำคัญ เพราะทุกตำแหน่งในการแสดงผลของ Search Engine ย่อมหมายถึงโอกาสที่ผู้สนใจจะเลือกเข้ามาชมเนื้อหา สำหรับ Blog นี้ จะแนะนำการเขียน Blog ตามหลักของ WordPress SEO by Yoast ที่ Swiftlet ใช้งานอยู่ สำหรับพนักงานของ Swiftlet และผู้เริ่มต้นเขียน Blog นั่นเอง WordPress SEO by Yoast สำหรับรายละเอียดของ Plugin ตัวนี้

SEO WordPress ทำยังไงให้ Blog ติดอันดับ! Read More »

Alfred! ผู้ช่วยการทำงานและการค้นหามือหนึ่งบน Mac OS X

Posted on July 1, 2015 By Anak Umpaivit Alfred คืออะไร? Alfred คือ Application ที่ชื่อดูเหมือนพ่อบ้านของฮีโร่ดัง และความสามารถในการช่วยอำนวยความสะดวกในการทำงานบน Mac OSX ได้เป็นอย่างดี เปรียบเสมือนเราได้ผู้ช่วยมาทำงานให้นั่นเอง โดยการทำงานออกจะคล้ายๆ Spotlight Search ที่มีมาให้กับ OSX แต่จะมีความสามารถเพิ่มเติมเข้ามาอีก ทั้งในขอบเขตที่สามารถใช้งานได้ฟรี และ ความสามารถที่ต้องจ่ายเงิน แต่ขอบอกได้ว่า แค่ความสามารถในการทำงานของตัวฟรีก็โดนใจผู้เขียนแล้ว เราไปดูความสามารถและวิธีการใช้งานกันเลย! 😀 Alfred General เมื่อเราติดตั้ง Alfred เรียบร้อย หน้าแรกจะให้เราตั้งค่า Hot Key ที่ใช้เรียกการทำงาน เหมือนกับเราเรียก Spotlight นั่นเอง น่าเสียดายที่ไม่สามารถเลือกบาง Key มาใช้ได้ เช่น ไม่สามารถเลือก ให้ทับ Hot Key ของ Spot light

Alfred! ผู้ช่วยการทำงานและการค้นหามือหนึ่งบน Mac OS X Read More »

Regular Expression

ณัฐธิดา หมวดเพ็ชร  [ 30 มิถุนายน 2558 ] Regular Expression  Regular Expression คือ การกำหนดรูปแบบอักขระ เพื่อใช้ในการค้นหาค่าในรูปแบบของ String โดย Regular Expression มีพื้นฐานมาจากทฤษฎีทางคณิตศาสตร์ที่ใช้ในการเปรียบเทียบข้อความที่ต้องการค้นหากับรูปแบบที่กำหนดว่ามีความสอดคล้องกันหรือไม่ รูปแบบอักขระของ Regular Expression มาจากการผสมอักขระพื้นฐานหลายตัวเข้าด้วยกัน เช่น /abc/ หรือจากการผสมอักขระพื้นฐานกับอักขระพิเศษ เช่น /ab*c/ หรือ/Chapter (\d+)\.\d*/ ที่ใช้เครื่องหมายวงเล็บเป็นหน่วยความจำ โดยข้อความที่ตรงกับรูปแบบอักขระในวงเล็บนี้จะถูกจดจำไว้เพื่อเรียกใช้ในภายหลัง มาดูสัญลักษณ์ของ Regular Expression ที่ใช้กันบ่อยๆดีกว่า ^ แทนความหมายว่า “ขึ้นต้นด้วย” เป็นจุดเริ่มของข้อความ $ แทนความหมายว่า “ลงท้ายด้วย” เป็นจุดสิ้นสุดของข้อความ . แทนตัวอักษรใด ๆ หนึ่งตัวยกเว้น NULL และแทนตัวขึ้นบรรทัดใหม่ | ใช้เป็นตัวคั่นเพื่อแสดงตัวเลือก ? แทนการเกิดขึ้น 0 หรือ 1 ครั้ง

Regular Expression Read More »