รวมเรื่องราวฉบับอยากเขียน by Ta

118-cover

เรื่องของ this ใน JavaScript และวิธีการใช้ bind, call, apply

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

ตัวอย่างข้างบน คลาสมีการประกาศตัวแปรชื่อ x เอาไว้ เมื่อเราจะสั่งงานใน method ให้ทำอะไรกับตัวแปร x นี่เราจะต้องขึ้นด้วยการบอกว่า this.x เพื่อเป็นการบอกว่าเราจะยุ่งกับ x ที่เป็นตัวแปรของคลาสข้างนอกโน้นนะ (ในบางภาษาเช่น Java สามารถละคีย์เวิร์ด this ได้แต่ตามหลักคือมันก็จะใส่ this ให้เองนั่นแหละ) แต่มีอยู่ภาษาหนึ่งที่คีย์เวิร์ด this ทำตัวไม่ค่อยเหมือนภาษาชาวบ้านคนอื่นเขาเท่าไหร่ นั่นคือ JavaScript

117-cover

[ทริป] @Singapore ~ again! อีกครั้งและอีกครั้งกับสิงคโปร์ 2015

สิงคโปร์เป็นประเทศที่เราเคยไปมาครั้งหนึ่งตอนเด็กๆ และจำมันไม่ได้แล้ว แต่เมื่อปีที่แล้วเพิ่งมีโอกาสไปสิงคโปร์มาอีกครั้ง (กับที่บ้าน) และอีกครั้ง (กับออฟฟิศ) กับประเทศเล็กๆ ที่มีขนาดแค่ครึ่งเดียวของกรุงเทพฯ เกี่ยวกับสิงคโปร์ ประเทศเล็กๆ หนึ่งในกลุ่ม AEC ที่เล็กมากจริงๆ ขนาดมองไม่เห็นในแผนที่โลก (ส่วนใหญ่จะเห็นแค่คำว่า “Singapore”) ทำให้เที่ยวแค่ไม่กี่วันก็เกือบครบทั้งประเทศแล้ว ประชากรส่วนใหญ่ของประเทศเป็นคนเชื้อสายจีน แต่ไม่ต้องกังวลว่าจะคุยไม่รู้เรื่องเพราะส่วนใหญ่ใช้ภาษาอังกฤษได้ ยกเว้นคนอายุมากบางคนที่พูดได้แต่ภาษาจีน เนื่องจากพื้นที่มีจำกัด สถานที่ท่องเที่ยวมักจะไม่ใช่สายธรรมชาติ ส่วนใหญ่จะเป็นพวกสิ่งก่อสร้างที่มนุษย์สร้างขึ้น สภาพอากาศของสิงคโปร์น่าจะร้อนเท่าหรือร้อนกว่าไทยซะอีก และมีโอกาสฝนตกง่ายมากๆ แถมไม่บอกล่วงหน้าด้วยนะ ดังนั้นเตรียมร่มไปด้วยจะดีมาก หน่วยเงินของสิงคโปร์คือ Singapore Dollar ย่อว่า S$ – 1S$ = 25 บาทโดยประมาณ แต่ค่าครองชีพที่นี่แพงกว่าไทยนะ ไฟฟ้าใช้ระบบ 220V...

115-cover

[Operating System] ว่าด้วยเรื่องของ Memory Management: Paging

หนึ่งในหน้าที่หลักๆ ของระบบปฏิบัติการ (OS) คือควบคุมการใช้เมมโมรี่ของโปรแกรมต่างๆ ที่รันอยู่ในเครื่อง เพราะทุกโปรแกรมล้วนต้องการพื้นที่สำหรับเก็บตัวแปรเวลาทำงานทั้งนั้น แต่วันนี้ที่เราจะมาพูดถึงหลักๆ กันจะโฟกัสที่เรื่องของ Paging หรือการแบ่งเมมโมรี่ออกเป็นเพจๆ ของOS Background .. ก่อนเข้าเรื่อง รู้หน่อยก็ดีนะ ก่อนจะพูดถึงเรื่องเพจกัน มาทบทวนการทำงานระหว่าง CPU – Main Memory (RAM) – Secondary Memory (Hard Disk) กันหน่อย ถือเป็นความรู้พื้นฐานที่ต้องใช้เลยนะ ใครรู้แล้วข้ามๆ ไปหัวข้อถัดไปเลยนะ โครงสร้างหลักๆ ของคอมพิวเตอร์แบ่งเป็น 3 ส่วนคือ CPU (สมอง) – Memory (ความจำ)...

pexels-photo-71184

[SQL] สรุปการใช้ view-function-procedure-trigger แบบง่ายๆ

ถ้าพูดถึงภาษาที่ใช้ติดต่อกับ Database อย่าง SQL แล้วส่วนใหญ่น่าจะนึกถึงคำสั่งพวก select, insert, update, delete กันเป็นอย่างแรก หรือถ้านึกได้มากกว่านั้นก็จะเป็นคำสั่งพวก create table แต่สำหรับภาษา SQL แล้วยังมีคำสั่งอีกชุดหนึ่งที่ไม่ค่อยมีคนรู้จักกันนั่นคือเจ้า 4 ตัวที่อยู่ในหัวเรื่องนั้นแหละ คำสั่งทั้ง 4 คือ view, function, procedure, trigger ซึ่งทั้งหมดเป็นคำสั่งประเภท DDL (Data Definition Language) ภาษานิยามข้อมูล หรือ ภาษาที่เอาไว้ใช้สร้างโครงสร้างของ database ซึ่งจะต่างกับคำสั่งพวก select และ insert, update, delete...

112-cover

“ต้นทุน-ราคาค่าจ้าง” กับอาชีพสายฟรีแลนซ์ ในมุมมองของผู้ประกอบการ และ…ลูกค้า

— ประเด็นวันนี้อาจจะละเอียดอ่อน แสดงความคิดเห็นได้ แต่อย่าดราม่ากันแรงนะคับ — บล๊อกนี้ไม่มีอะไรมากหรอก แค่เขียนๆ-บ่นๆ เฉยๆ (ฮา) เรื่องของเรื่องก็คือ…ไปเห็นโพสต์หนึ่งที่แชร์กันเยอะในเฟสบุ๊คช่วงที่ผ่านมา หัวข้อคือ “ส่อง 10 ธุรกิจลงทุนจิ๊บๆ แค่ใช้ทักษะที่มีในตัวก็ทำเงินได้” (ตามไปอ่านเต็มๆ ได้ที่ต้นทาง http://www.thairath.co.th/infographic/359) เนื้อหาก็ไม่มีอะไรมาก ส่วนใหญ่แนะนำอาชีพสายฟรีแลนซ์ซึ่งเป็นอาชีพยอดฮิตในยุคนี้ เช่น ติวเตอร์ ช่างภาพ กราฟิกดีไซน์ ซึ่งตอนแรกอ่านจบก็โอเค เหมือนจะดี เป็นการให้แนวทางว่ามีอะไรหลายอย่างเลยนะที่คุณอาจจะเอามาหาเงินได้โดยที่คุณไม่ต้องลงทุนอะไรเพิ่มเติมแล้วนะ เพราะคุณน่าจะพอมีความรู้เรื่องนั้นอยู่แล้ว ถึงต้องศึกษาเพิ่ม คุณก็จะเร็วกว่า ได้เปรีนบกว่าคนอื่น แต่ประเด็นคือในเฟสบุ๊คแทบจะทุกโพสต์ที่แชร์กันมา มีการคอมเมนท์เหมือนกันว่า… “ทำคนที่ไปหาข้อมูลมาจากไหน! อาชีพพวกนี้เหรอไม่มีต้นทุน คิดจริงๆ ต้นทุนแพงมากเลยนะ อย่ามาหาว่าอาชีพพวกนี้หาเงินง่ายแล้วก็มากดราคากันสิ” ถ้าไปกระทบใครก็ขออภัยด้วยครับ <(_...

31

วิธีคำนวน Delay, loss and throughput ในระบบ packet-switched networks

เวลาเราส่งข้อมูลผ่านระบบเครือข่าย ไม่ว่าจะเป็นส่งรูปให้เพื่อน อัพโหลดไฟล์ หรือพิมพ์แชทก็ตาม ข้อมูลของเราจะวิ่งผ่าน network (ยังไม่ขอพูดละกันว่าผ่านยังไงบ้าง) แต่ไม่ใช่ว่าทันทีที่เรากดส่งปุ๊บมันจะถึงปั๊บ เพราะมันมีสิ่งที่ทำให้ Data ของเราถึงจุดหมายช้าลง นั่นคือที่มาของ Delay

RegEx

Regular Expression เช็ก/จัด/ตัด/แบ่งstring แค่บอกมาว่าอยากได้อะไร

ใน การเขียนโปรแกรมที่ต้องยุ่งกับ string มีหลายครั้งเลยที่เราต้องมีการตรวจเช็กว่า string ที่มีน่ะ ไม่ว่าจะมาจากการกรอกข้อมูลของผู้ใช้ อ่านจากไฟล์ หรือสร้างขึ้นมาเองก็เถอะพวกนั้นน่ะ มีรูปแบบ (pattern) ที่ถูกต้อง เช่น username ของผู้ใช้ต้องประกอบด้วยตัวอักษร a-z หรือตัวเลข ตั้งแต่ 4-20 ตัวอักษร ให้ผู้ใช้กรอกอีเมล แล้วอยากเช็กว่า string ที่เขาใส่มาน่ะเป็นอีเมลจริงรึเปล่า หรือว่าใส่มั่วมากันแน่ อยาเช็กว่า 158.24.36.220 เป็น IP Address ที่ถูกformatรึเปล่า เอาล่ะ สำหรับโปรแกรมเมอร์มือใหม่ก็อาจจะบอกว่าการตรวจ format (หรือที่เรียกว่า pattern matching) พวกนี้ก็เขียนโปรแกรมให้เช็กได้อยู่แล้วนี่นา เช่นจะเช็ก username...

110-2

Programming paradigm – การเขียนโปรแกรมก็มี “กระบวนท่า (ทัศน์)” นะ

ช่วงที่ผ่านมาหลายๆ คนอาจจะเคยได้ยินคำว่า Functional Programming ซึ่งเป็นเทรนด์การเขียนโปรแกรมที่มาแรงในขณะนี้ (ปี2016) แล้วสงสัยมั้ยว่ามันต่างจากการเขียนโปรแกรมที่เราๆ เคยเขียนกันมาอย่างไรกันนะ ภาษา C, Java, PHP อะไรพวกนี้ไม่ใช่ Functional เหรอ มันสร้าง Function ได้นะ แล้วถ้าไม่ใช่มันเรียกว่าอะไร? Programming paradigm หากเปรียบโลกโปรแกรมมิ่งเป็นยุทธภพ ภาษาโปรแกรมต่างๆ ก็น่าจะเทียบได้กับสำนักวิชา เราๆ ที่เป็นโปรแกรมเมอร์ก็จะเริ่มจากระดับเด็กฝึกหัด เลือกเข้าสำนักใดสำนักหนึ่งก่อนเป็นอันดับแรก ซึ่งโดยสถิติแล้วสำนักยอดฮิตพิมพ์นิยมก็คือสำนักใหญ่ที่มีชื่อว่า C/C++, Java, C#, Python ซึ่งในขั้นนี้เราจะต้องเรียนวิธีการคิดที่เรียกว่า algorithm และคำสั่งที่ยากและซับซ้อนขึ้นเรื่อยๆจนในที่สุดก็สำเร็จวิชา (ภาษา) ของสำนักนั้นๆ หลังจากออกจากสำนักแล้วก็จะมีบางคนที่อยากศึกษาเพิ่มเติม ก็จะทำการเลือกเข้าสำนักที่ 2...

80

[แปล] มารู้จักกับ Functional Programming สิ่งที่คุณต้องรู้ในตอนนี้กันเถอะ

*บทความนี้เป็นบทความที่เขียนมาตั้งแต่บล๊อกเก่า (ปี2015) แต่เพิ่งย้ายมาลงที่นี่ — OOP cannot save us from the Cloud Monster anymore. “การเขียนโปรแกรมแบบ OOP(เชิงวัตถุ)ไม่อาจช่วยคุณได้อีกแล้ว!!” บล๊อกนี้เป็นการแปลอีกแล้ว ช่วงนี้มีแต่แปลบทความทั้งที่เรื่องที่อยากเขียนก็มีเยอะนะ เอาล่ะ บล๊อกนี้ออกจะคล้ายๆ บล๊อกที่แล้ว ภาษาและเฟรมเวิร์คไหนบ้างที่ Developer ควรจะศึกษาประจำปี 2015 นั่นคืออะไรที่เราควรจะสนใจในปี 2015 นั่นแหละนะ สำหรับวันนี้เราจะมาพูดถึง…   Functional Programming & Lambda-Function กันละนะ (แปลจาก Functional Programming should be your #1...

Zootopia-poster-2

[รีวิว-เรื่องย่อ] Zootopia – 2016 นครสัตว์มหาสนุก (★★★)

Zootopia – นครสัตว์มหาสนุก (2016) ให้คะแนน (★★★) วันนี้ได้มีโอกาสไปดูภาพยนต์อนิเมชั่นเรื่องล่าสุดจากดีสนีย์ เรื่อง Zootopia ขอสารภาพเลยว่าตอนแรกที่ได้ดูตัวอย่างก็มีความรู้สึกแค่อยากดูเท่านั้นแหละจนได้ดูตัวอย่างช่วงตัวสล๊อตเท่านั้นแหละ กลายเป็นอยากดูมากไปเลย (ฮา) เรื่องราวในโลกที่มนุษย์ไม่เคยปรากฏขึ้นมา โลกที่มีแต่สัตว์เลี้ยงลูกด้วยนม โลกที่สัตว์ทั้งผู้ล่าและผู้ถูกล่าอยู่ร่วมกันอย่างสันติ ณ มหานครซูโทเปีย เมืองที่นิยามว่าดินแดนที่ใครอยากเป็นอะไรก็เป็นได้ … จูดี้ ฮ็อปส์ กระต่ายสาวผู้ผ่านการสอบการเป็นตำรวจคนแรกจากสัตว์กลุ่มผู้ถูกล่าได้เดินทางมาทำงานที่เมืองนี้ แต่ทุกอย่างก็ไม่ค่อยเป็นอย่างที่หวังเมื่อเธอถูกเมินและส่งไปทำงานตำรวจจราจรคอยออกใบสั่งในขณะที่ตำรวจคนอื่นที่ส่วนมากเป็นกลุ่มสัตว์นักล่าออกไปทำคดีใหญ่ซึ่งมีสัตว์หายไป 14 ตัว และเป็นกลุ่มสัตว์นักล่าทั้งหมด จนในที่สุด จูดี้ต้องร่วมมือกับ นิค ไวลด์ จิ้งจอกที่ตอนแรกมาหลอกต้มตุ๋นจูดี้เพื่อไขคดีนี้ โดยทั้งคู่มีเวลาแค่ 48ชม.เท่านั้น ภารกิจร่วมมือกันแบบจับพลัดจับผลูจึงก่อเป็นมิตรภาพระหว่างสัตว์ผู้ล่าและผู้ถูกล่า ในหนังจับประเด็นเรื่องการใช้ชีวิตตามหน้าที่ที่ถูกกำหนดมาโดยแสดงออกมาในรูปของสัตว์กลุ่ม “ผู้ล่า” และ “ผู้ถูกล่า” ถึงซูโทเปียจะบอกไว้ว่า เป็นอะไรก็ได้ที่อยากเป็น...