Sep 29, 2014

Sukiyaki เพลงประกอบ MK

ไม่กี่ปีก่อนน่าจะมีคนจำได้กับเพลงประกอบโฆษณา MK ที่ร้องด้วยถ้อยคำผ่านทำนองอันแสงจะติดหูว่า

"เรากินสุกี้กิน MK เรากิน MK กินสุกี้ เรากิน MK สิ่งดีๆ มีติดตัวตั้งมากมาย"

พอเดาได้อยู่ว่าเพลงโฆษณาพวกนี้คือการเอาเพลงที่มีจริงๆ อยู่แล้วมาดัดแปลงใส่เนื้อร้องเข้าไปใหม่ (ไม่ได้แต่งหมดตั้งแต่เริ่ม)



เรื่องน่าแปลกคือเพลงนี้เดิมชื่อว่า 上を向いて歩こう (Ue o Muite Arukō) ถ้าแปลเป็นไทยสวยๆ หน่อยชื่อเพลงจะประมาณ "เงยหน้าสู้ฟ้าพร้อมก้าวไปต่อ" เนื้อเพลงก็ออกแนวตัดพ้อเรื่องความรัก แต่ก็ยังไม่ก้มหน้านะ เดี๋ยวน้ำตาจะรินไหล

คือเพลงทั้งเพลงไม่ได้มีข้อความอะไรเกี่ยวกับ "สุกี้ยากี้" ซึ่งเป็นชื่อเพลงที่คนนอกประเทศญี่ปุ่นรู้จักกันอย่างแพร่หลายเลย

คงจะคล้ายกับการที่เราตั้งชื่อหนังว่า "ต้มยำกุ้ง" ทั้งๆ ที่หนังทั้งเรื่องไม่มีอาหารที่ชื่อว่า "ต้มยำกุ้ง" โผล่มาให้เห็นเลยกระมั้ง :P

Sep 11, 2014

หนังสือ 9 เล่มในดวงใจ

เขียนไว้บน Facebook รอบนึงแล้วครับ ก๊อปมาแปะตรงนี้อีกรอบกัน blog ร้าง :P

  1. ไบเบิล - เนื่องจากเรียนโรงเรียนคริสเตียนก็เลยมีโอกาสได้อ่านผ่านๆ ตั้งแต่ตอนประถม แม้จะอ่านไม่จบ (ถึงอ่านจบตอนนี้คงลืมไปหมดแล้ว) แต่ก็ถือว่าเป็นหนังสือที่เปิดโลกด้านการนับถือศาสนาได้ดีทีเดียว นอกจากนี้ยังช่วยปูทางไปสู่ philosophy และ cosmology อีกด้วย
  2. ตำนานเทพเจ้ากรีกโรมัน - ฉบับภาษาไทยที่ไม่ได้แปลมาจาก Homer ตรงๆ แต่เป็นการเรียบเรียงเรื่องราวสำคัญของเหล่าเทพมาเล่า เล่มนี้มีจุดสำคัญที่ทำให้เรามองว่าเหล่าเทพเจ้านั้น สุดท้ายก็ไม่ต่างอะไรกับคนทั่วไป มีรักโลภโกรธหลงและทำผิดพลาดกันได้
  3. Stephen Hawking's A Brief History of Time - หลังจากมองในมุมศาสนาว่าพวกเขาหาคำตอบในชีวิตกันอย่างไรแล้ว ก็มามองในมุมวิทยาศาสตร์บ้าง ผมอ่านหนังสือตอเล่มนี้ตอนม.ต้นและเห็นว่าการให้เหตุผลแบบวิทยาศาสตร์มันเข้าท่ากว่าใช้ความเชื่ออย่างเดียวแบบศาสนา แม้จะอ่านได้ไม่เข้าใจทั้งเล่ม แต่ก็ทำให้ตั้งเป้าไว้ว่าอยากเก่งด้านวิทยาศาสตร์มากกว่านี้ อยากใช้ให้เหตุผลให้ได้เก่งกว่านี้ เพื่อที่จะได้นำไปตอบคำถามว่าชีวิตคืออะไรกันแน่
  4. แคลคูลัส 1 โดย วิรัตน์ สุวรรณาภิชาติ - อ่านตอนม.ต้นเช่นกันหลังจากอ่านเล่มที่แล้วจบ เป็นเล่มที่ไปยืนเลือกที่ร้านหนังสือแล้วพบว่าอ่านเข้าใจง่ายที่สุดแล้ว เลือกอ่านเล่มนี้เพราะต้องการอ่านเล่มที่แล้วให้รู้เรื่องนั่นแหละ (ซึ่งก็ไม่ช่วยเท่าไหร่) แต่ก็เปิดโลกด้านคณิตศาสตร์ได้ดีทีเดียว
  5. ทฤษฎีดนตรี โดย ณัชชา พันธุ์เจริญ - หลังจากสนใจแต่วิทยาศาสตร์มาตลอด (ยอมรับว่าช่วงนึงเคยดูถูกสายศิลป์ด้วยว่า แค่ละเลงสีมั่วๆ เป็นภาพก็ขายได้แล้ว) ก็มีเรื่องดลใจให้ไปหัดพังเพลงคลาสสิก ซึ่งตอนฟังอย่างเดียวก็รู้สึกแค่ว่ามันเพราะดีนะ แต่พอได้อ่านเล่มนี้แล้วเหมือนเปิดโลกเลยว่า ศิลปศาสตร์ไม่ได้เป็นเรื่องที่จะเอามาทำเล่นๆ ได้เลยทีเดียว
  6. Roger B. Nelsen's Proofs Without Words - แล้วศาสตร์กับศิลป์ก็มาบรรจบกัน กับหนังสือที่ดึงความสวยงามของคณิตศาสตร์ออกมาแสดงในเชิงศิลปะได้เป็นอย่างดี หนังสือเล่มนี้น่าจะเป็นจุดสำคัญที่ทำให้ตัดสินใจเลือกเรียนเอกคณิตศาสตร์อีกด้วย
  7. Tanigawa Nagaru's Sizumiya Haruri Series - อ่านตอนม.ปลายช่วงที่กระแสการ์ตูนกำลังดัง ชอบมากตรงที่คนเขียนเอาทฤษฎีทางวิทยาศาสตร์ประหลาดๆ ที่เข้าใจได้ยากมาผูกกับตัวละครเกรียนๆ จนได้เป็นเนื้อเรื่องย่อยง่าย หนังสือชุดนี้นี่เองที่ส่งผลให้ศึกษา philosophy จริงจัง
  8. Isaac Asimov's The Last Question - จริงๆ เป็นแค่เรื่องสั้น แต่แค่เรื่องนี้เรื่องเดียวก็เหมือนกับการสรุปคำถามจากหนังสือข้างต้นแทบทั้งหมดแล้วมาหาคำตอบให้มัน อ่านจบแล้วก็คิดได้ว่าศาสนาไม่จำเป็นต้องยืนอยู่คนละข้างกับวิทยาศาสตร์เลย
  9. Douglas Adams' Hitchhiker's Guide to the Galaxy - ผมเชื่อว่า พอเรียนรู้สิ่งต่างๆ ไปจนความรู้มันแทบจะระเบิดออกมา สุดท้ายแล้วก็ต้องหาทางลืมความรู้นั้น (unlearn) หนังสือชุดนี้แสดงถึงความไร้สาระของชีวิตได้ดีจริงๆ และน่าจะเป็นบทสรุปให้กับคำตอบของชีวิตที่ผมตั้งคำถามไว้อย่างเนิ่นนานด้วย

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

Sep 5, 2014

Barcamp Bangkok 2014

บาร์แคมป์กรุงเทพปีนี้จัดที่ TK Park ที่อยู่ชั้นบนสุดของห้าง Central World ครับ เดินทางง่ายไม่มีคำว่าหลงแน่นอน


งานนี้ค่อนข้างเป็นภาษาไทยเยอะมาก (หรือผมแปลกเองที่คิดว่าบาร์แคมป์น่าจะมีภาษาอังกฤษเยอะกว่านี้?) และเจ้าของงานบอกไว้ก่อนที่จะลงมือแปะ session ว่าขอให้หัวข้อเกี่ยวกับเรื่อง IT ซึ่งพอดีผมเตรียมเรื่องดนตรีเพียวๆ มาเลยไม่กล้าไปแปะหัวข้อไปครับ

สถานที่จัดงานก็พอโอเค แม้ว่ามีห้องที่เป็นห้องจริงๆ ให้แค่ 3 ห้อง แต่พอกั้นห้องโถงไว้เป็นอีกห้องนึงก็เข้าท่าดีเหมือนกันครับ


@dtinth ที่ลืมสายต่อโปรเจคเตอร์จนต้องให้ทุกคนมารุมดูจอใกล้ๆ


@awkwin กับ @nonene_desu มาเถียงกันว่า DotA 2 กับ League of Legends เกมไหนเจ๋งกว่ากัน

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

สรุปว่างานนี้ไม่ปลื้ม แต่ก็ยังดีที่รวมพลไปเล่นบอร์ดเกมต่อหลังงานได้ (ถือเป็นเรื่องสนุกที่สุดของวันเลย)


เกมสร้างเรือเหาะกลางทะเลทราย ที่เล่นกับ @Blltz @scomma @chakeaw @hlungx และ @patamaAun ไม่ผ่านซักที

Sep 2, 2014

ใดๆ ในโลกล้วนการเมือง

ตอนเด็กๆ เคยปลื้มกับคำพูดนี้มาก

Politics is for the present, but an equation is something for eternity.
-- Albert Einstein

ได้ไอดอลเช่นนี้ก็เลยเลือกเรียนสายวิทยาศาสตร์บริสุทธิ์ เรียนไปเรียนมารู้ตัวอีกทีก็เข้ามหาวิทยาลัยไปอยู่เอกคณิตศาสตร์เรียบร้อย

แต่ยิ่งศึกษาลึกลงไปเท่าไหร่ยิ่งรู้สึกว่าศาสตร์ต่างๆ มันต้องเกิดมาให้ถูกที่ถูกเวลาถึงจะไปรอด

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

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

ทฤษฎีกราฟเกิดขึ้นราว 300 ปีก่อน เมื่อ Euler ดันไปสนใจการจัดผังสะพานเมือง Königsberg ซึ่งตอนนั้นทฤษฎีกราฟก็ใช้หาประโยชน์อะไรไม่ได้นอกเสียจากเอาไว้ตอบปัญหาเชาว์เรื่องการเดินข้ามสะพานนั่นเอง ต้องรอจนกระทั่งคอมพิวเตอร์ถือกำเนิดขึ้นเป็นจำนวนมากจนต้องมีการวางระบบเครือข่ายให้คอมพิวเตอร์คุยกัน เราจึงได้เห็นประโยชน์ของทฤษฎีกราฟจริงจัง

มองย้อนกลับไปยังผู้กล่าวประโยคข้างต้น กับสมการสร้างชื่อสุดอมตะอย่าง E = mc2 ที่เปรียบได้ดั่งกุญแจไขความลับจักรวาลว่าสสารและพลังงานนั้นแท้จริงแล้วรากฐานเป็นสิ่งเดียวกัน อย่าลืมว่าผลลัพธ์จากสมการนี้ทำให้เกิดอาวุธที่น่ากลัวที่สุดที่มนุษย์เคยสร้างมา

หากจำลองสถานการณ์มองย้อนเวลากลับไปว่าตอนนั้นไม่มีสงคราม สมการข้างต้นยังจะมีชื่อเสียงขนาดนี้อยู่มั้ย การพิสูจน์ความถูกต้องผ่านการทดลองจริงจะเป็นไปอย่างเชื่องช้าแค่ไหน ห้องแล็บอนุภาคอย่าง CERN จะเกิดขึ้นมาเพื่อค้นหาคำตอบอื่นๆ หรือเปล่า? แน่หละว่า Einstein อาจยังยึดหลักการเดิมว่าความรู้ในวิทยาศาสตร์ไม่มีวันตายและศึกษาพัฒนามันไปเรื่อยๆ (ด้วยความหนืดมากกว่านี้จนอาจไม่ทันได้เห็นผลลัพธ์) แต่ภาพรวมของวงการวิทยาศาสตร์ปัจจุบันจะออกมาเป็นแบบไหน?

หรือถ้าสะพานเมือง Königsberg ไม่ได้มีแค่ 7 สะพานและเรียงตัวกันอย่างนั้น Euler อาจไม่สนใจที่จะพัฒนาทฤษฎีกราฟ ซึ่งซักวันมันจะมีประโยชน์อย่างมากในการวางเครือข่ายระบบคอมพิวเตอร์ก็ได้

แต่เมื่อถึงเวลาที่เราต้องใช้ความรู้เหล่านั้นเป็นพื้นฐานเพื่อต่อยอดสิ่งอื่นจริงๆ การสร้างองค์ความรู้ใหม่อาจไม่ได้เชื่องช้าอย่างที่คิด คือแทนที่จะใช้เวลาทั้งชีวิตเพื่อเขียนทฤษฎีที่เราจะตายไปก่อนที่จะได้เห็นการนำมันไปใช้ประโยชน์ (หรือบางทฤษฎีก็อาจหาประโยชน์จริงๆ ไม่ได้เลย) หากอยู่ในโมเมนตัมทางสังคมที่ถูกต้อง เราอาจใช้เวลาเพียงไม่กี่ปีกับการพัฒนางานที่จะก่อให้เกิด paradigm shift บนโลกใบนี้ก็ได้

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

ป.ล. เผื่ออ่านประกอบ: บล็อกของ @lewcpe, นิยาย Foundation เล่มที่ 3

Aug 29, 2014

เพราะห้องสมุดใหญ่เกินกว่าที่คนเดียวจะอ่านหนังสือครบทุกเล่ม

น่าเสียดายนะครับ ชีวิตคนเรานี้มันสั้นสิ้นดี

อย่าว่าแต่หนังสือในห้องสมุดทั้งหมดที่ไม่มีทางอ่านครบเลย แค่หนังสือเล่มเดียวที่อ่านก็ไม่แน่ว่าเราจะเก็บประเด็นอะไรได้หมด

ร้ายสุดคือหนังสือที่ไม่ใช่ข้อสรุปเชิงวิทยาศาสตร์ แต่เป็นสันนิษฐานที่เป็นไปได้ที่ยังต้องการข้อมูลมากกว่านี้มาสนับสนุนความคิด แบบนี้ผู้เขียนแต่ละคนก็เขียนมาได้หลายร้อยพันแบบเลย

การที่คนสองคนมาพูดคุยแลกเปลี่ยนกัน มันจึงไม่แปลกถ้าจะเข้าใจไม่ตรงกัน เพราะเราอ่านหนังสือกันมาคนละเล่ม หรือถึงแม้จะอ่านเล่มเดียวกันก็อาจเข้าใจไม่ตรงกัน

ดังนั้นเวลาคุยกันไม่รู้เรื่อง การไล่ไปหาหนังสืออ่านเองในห้องสมุด ผมว่ามันเสียมารยาทมากๆ นะ

อย่างน้อยก็บอกมาหน่อยว่าต้องหยิบหนังสือเล่มไหน ใจความสำคัญอยู่หน้าที่เท่าไหร่

hint: ลองเปลี่ยนคำว่าห้องสมุดเป็น Google

Aug 26, 2014

O Mio Babbino Caro

พอดี @isamare แนะนำวิชา Listening to Music มาครับ ก็นั่งดูไปเรื่อยๆ ด้วยความสนุกสนาน จนถึงตอนนึงอาจารย์ Craig Wright เล่าเหตุการณ์ในบ้านแกให้ฟังว่า

อาจารย์: (นั่งเล่นเปียโนอย่างสบายอารมณ์)
ลูกชาย: เพลงนี้เพราะมากเลยนะพ่อ
อาจารย์: โอ้ ให้มันได้อย่างนี่สิลูกชายฉัน (คงตัวลอยฝันไปไกลว่าลูกโตขึ้นเป็นนักดนตรีตามรอยตัวเองแน่ๆ 555)
ลูกชาย: ได้ยินมาหลายครั้งละใน Grand Thief Auto เพลงนี้เพลงอะไรครับพ่อ?
อาจารย์: เดี๋ยวก่อนนะ ... อะไรคือ Grand Thief Auto???



จุดเด่นของเพลงนี้ที่อาจารย์แกยกมาเล่าเรื่องเมโลดี้ครับ ปรกติเพลงร้องมักจะค่อยๆ ไล่โน้ตไปทีละขั้นสองขั้น แต่เพลงนี้กลับใช้การกระโดด 1 octave เลยทีเดียว

Jul 23, 2014

Wolfgang Amadeus Mozart - Symphony No. 25 in G minor, K. 183



มีคำกล่าวว่า Mozart ไม่ค่อยแต่งเพลงในกุญแจไมเนอร์ ซึ่งก็จริงอยู่เพราะจาก Symphony ราว 40 บท มีเพียง 2 บทเท่านั้นที่อยู่ในกุญแจไมเนอร์

แต่นั่นไม่ได้หมายความว่า Mozart แต่ง Symphony ในกุญแจไมเนอร์ไม่เก่ง

เพราะหมายเลข 25 นี้เอง ที่เป็นสิ่งพิสูจน์ข้อความข้างต้นครับ

I. Allegro Con Brio (8:00 นาที)

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

ในภาพยนต์เรื่อง Amadeus ซึ่งเป็นชีวประวัติของ Mozart ฉากแรกที่เปิดตัวมาด้วยภาพผู้คนจำนวนมากล้มตาย ก็ได้ท่อนนี้มาประกอบนี่แหละครับ เข้ากั๊นเข้ากัน ฟังแล้วเหมือนรอความตายยังไงหยั่งงั้นเลย

II. Andante (3:30 นาที)

มันน่าจะเป็นธรรมเนียมของการจัดวางองประกอบศิลป์ในโลกตะวันตกครับ ที่เวลาเล่าเรื่องเศร้าแล้ว มันต้องสลับกลับมาเล่าเรื่องสุข ถ้าตอนแรกเริ่มต้นด้วยความเร่งรีบ ถัดมาต้องเป็นช่วงที่เยือกเย็นผ่อนคลาย สลับสับเปลี่ยนกันไปแบบนี้

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

III. Menuetto & Trio (3:30 นาที)

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

IV. Allegro (6:00 นาที)

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

ก็เป็นเพลงแบบเศร้าๆ มืดๆ จาก Mozart ที่เจ๋งดีครับ ฟังแล้วจินตนาการเป็นอย่างอื่นไม่ค่อยออก นอกจากเห็นภาพความตายที่รอคอยอยู่เบื้องหน้าจริงๆ

Jul 15, 2014

The Swing

ดู Frozen เมื่อปีก่อนก็ตะหงิดๆ อยู่ในใจว่า ตอนที่อันนากระโดดดึ๋งๆ ในเพลง For the First Time in Forever แล้วทำท่าเลียนแบบรูปวาดบนผนัง มันมีรูปนึงที่คุ้นตาเอาซะมากๆ

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

แต่หนังสนุก เพลงเพราะ ก็ลืมไปเลยว่าเคยสงสัยข้อนี้

จนกระทั่งวันก่อนเดินเข้าร้านหนังสือฆ่าเวลาเล่น แล้วไปเปิด 1001 Paintings You Must See Before You Die (edition ไหนไม่รู้ แต่น่าจะล่าสุด) พลิกกระดาษมั่วๆ ไปไม่กี่หน้าก็เจอภาพนี้เข้าพอดี


Les Hasards Heureux de l'Escarpolette โดย Jean-Honoré Fragonard วาดในปี 1767

อันนี้เทียบกับเวอร์ชั่นดิสนีย์


ภาพวาดที่อันนาทำท่าเลียนแบบ (บน) และภาพแบบธรรมดา (ล่าง) ภาพจาก Animate Film Review

ก็เป็นอันว่า ปริศนาในขีวิตไขกระจ่างไปอีกหนึ่งข้อ :P

Jul 12, 2014

Self Printing Program

หลายวันก่อนเปิดเจอโพสนี้ของคุณ @theppitak ซึ่งเป็นเรื่องของการเขียนโปรแกรมที่ต้องการผลลัพท์เป็นโปรแกรมที่กลับมาพิมพ์โปรแกรมตัวเอง

พูดง่ายๆ ว่าถ้าสมมติว่าโปรแกรมนั้นชื่อ self.c การสั่งคำสั่ง diff ครั้งสุดท้ายในโค้ดต่อไปนี้ต้องให้ค่าคืนมาเป็นว่า 2 ไฟล์มีเนื้อหาเหมือนกัน
$ gcc self.c
$ ./a.out > other.c
$ diff self.c other.c
เนื่องจากคุ้นว่าจะเคยเห็นคำถามแนวนี้ใน Ruby มาก่อนแล้ว ตอนแรกก็ไม่ได้คิดว่าจะลองทำหรอก แต่เท่าที่สังเกตแล้วจุดที่น่าจะเป็นปัญหาน่าจะมาจากเรื่อง escape string ซึ่งใน Python มันคงไม่ยุ่งยากเท่าไหร่ เพราะมี raw string และฟังก์ชั่น repr ไว้คอยจัดการปัญหา escape string อยู่แล้ว

แต่คิดไปคิดมา เอ่อ แล้วถ้าเป็นใน C (ที่ต้นทางเค้าสงสัย) นี่มันจะทำยังไงหว่า? เลยลงมือเขียนเล่นๆ จนได้ออกมาดังนี้
void main() {
  int i = 0, j = 0;
  char* x = "void main() {\n\tint i = 0, j = 0;\n\tchar* x = \"%s\";\n\twhile (x[i]) {\n\t\tif (x[i++] == '%%' && x[i++] == 's') {\n\t\t\twhile (x[j]) {\n\t\t\t\tswitch (x[j++]) {\n\t\t\t\t\tcase '\\n': putchar('\\\\'); putchar('n'); break;\n\t\t\t\t\tcase '\\t': putchar('\\\\'); putchar('t'); break;\n\t\t\t\t\tcase '\\\"': putchar('\\\\'); putchar('\"'); break;\n\t\t\t\t\tcase '\\\\': putchar('\\\\'); putchar('\\\\'); break;\n\t\t\t\t\tdefault: putchar(x[j-1]);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tputchar(x[i-1]);\n\t\t}\n\t}\n}\n";
  while (x[i]) {
    if (x[i++] == '%' && x[i++] == 's') {
      while (x[j]) {
        switch (x[j++]) {
          case '\n': putchar('\\'); putchar('n'); break;
          case '\t': putchar('\\'); putchar('t'); break;
          case '\"': putchar('\\'); putchar('"'); break;
          case '\\': putchar('\\'); putchar('\\'); break;
          default: putchar(x[j-1]);
        }
      }
    } else {
      putchar(x[i-1]);
    }
  }
}
ไม่ได้จับ C มาหลายปี หมดพลังไปเยอะกว่าคิดออก 555+

Jul 8, 2014

ชีวิต (เกือบ) ไม่ติดเน็ต

พอดีเดือนก่อนปิดเทอมกลับบ้านนานครับ เลยยกเลิกเน็ตหอไป พอกลับมาแล้วยังไม่ครบรอบ เลยไม่ได้กลับมาต่อเน็ตไวไฟ ใช้แต่บนมือถืออย่างเดียว

ก็เป็นประสบการณ์ที่แปลกดีนะ วันแรกๆ รู้สึกจดจ่อกับงานได้ดีขึ้นเยอะมาก ไม่มีสิ่งกวนใจเลย

แต่พอทำไปทำมาแล้วเจอปัญหาใหญ่ครับ เพราะต้องพึ่ง Google, StackOverflow บ่อยๆ ครั้นจะหาในมือถือจอเล็กๆ แล้วพิมพ์ code ซ้ำในคอมก็ลำบากไปหน่อย กลายเป็นว่าวันหลังๆ นี่งานเดินช้ากว่าช่วงที่มีเน็ตไวไฟซะอีก

เดี๋ยวว่าจะกลับไปติดเน็ตคืนละครับ แล้วค่อยหาวิธีคุมสิ่งกวนใจด้วยวิธีอื่นแทน งานนี้ถือว่า trade-off ไม่คุ้มซะเท่าไหร่ :s