Friday, January 4, 2008

Story of Stuff

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



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

ผมว่ามันเป็นคลิปที่อธิบายได้ชัดเจนและเห็นภาพมากๆ

บางทีการอนุรักษ์สิ่งแวดล้อมอาจถูกมองว่าเป็นอุปสรรคต่อการพัฒนาอุตสาหกรรม แต่ถ้าเป็นไปได้ผมอยากได้เห็นอุตสาหกรรมที่พัฒนาได้อย่างยั่งยืน และไม่ทำให้เราเสียใจภายหลังเมื่อพบว่าสิ่งที่สูญเสียไปนั้นมันมีค่าแค่ไหน

สำหรับผม การคงอยู่ของต้นไม้และธรรมชาติ นั้นมีความสำคัญมากกว่า "ข้ออ้าง" ถึงผลเสียทางอ้อมของการขาดมันเสียอีก

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

ว่าแล้ว เรามาเริ่มต้นการอนุรักษ์จากการไม่หลับหูหลับตาเชื่อสื่อดีกว่า

Thursday, December 6, 2007

C/C++ Performance in Complex Number Computation

จากที่คุณ bow_der_kleine ได้เขียนใน biolawcom.de ไว้ในหัวข้อ C/C++ vs. Fortran in Scientific Programming ทำให้ผมเกิดข้อสงสัยในการเปรียบเทียบความเร็วระหว่าง C/C++/Fortran ในการคำนวณ complex number

ในตัวอย่างนั้นได้ทำการเปรียบเทียบ C++ และ Fortran ในการคำนวณด้าน complex number ไว้ และสรุปว่าภาษา C นั้นช้ากว่าโปรแกรมที่เขียนโดย Fortran มากๆ ในการคำนวณ complex number
ผมค่อนข้างไม่เห็นด้วยกับข้อสรุปนี้ เนื่องจากยังไม่มีการเขียนเปรียบเทียบระหว่างภาษา C (ชัดๆ) และ Fortran เลย

ข้อแตกต่างระหว่าง c/c++ นอกจากความสามารถด้านคลาสแล้วยังรวมถึงไลบรารีต่างๆที่ใช้ด้วย และหนึ่งในนั้นคือไลบรารี complex ซึ่งใน C/C++ นั้นมีรายละเอียดแตกต่างกันค่อนข้างมาก

ผมลองเขียนโค้ดโดยอิงตัวแปรจากคุณ bow เป็นหลัก มาสามโปรแกรมคือ
  1. ภาษา C ที่เรียกใช้ complex.h ซอร์ส
  2. ภาษา C++ ที่เรียกใช้ complex ซอร์ส
  3. ภาษา C ที่ไม่เรียกใช้ complex.h ซอร์ส
และทำการจับเวลาโดยใช้สคริปท์ python

ได้ผลลัพท์คือ (ดูรูปใหญ่)



จะเห็นว่าเวลาที่ได้ระหว่าง C/C++ นั้นมันต่างกันอย่างเห็นได้ชัด โดยมีอัตราการโตของเวลาที่ใช้แตกต่างกัน

จริงๆแล้วอยากเทียบกับ Fortran จังเลย แต่เขียนไม่เป็น

ปล. ระหว่างที่เขียนและรันโปรแกรมได้โหลดบิททอเรนท์อยู่ ผลลัพท์อาจผิดพลาดไปเล็กน้อย

Monday, November 12, 2007

TV on Debian Etch

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

ผมเลือกที่จะซื้อการ์ดทีวีมาติดตั้งลงใน desktop ของผม ที่ตอนนี้ผมกำลังพยายามเซ็ตมันเป็น server อเนกประสงค์อยู่

การ์ดที่ผมเลือกใช้คือ Hauppauge WinTV Go ที่สามารถใช้บน linux ได้ และมีราคาถูก ผมซื้อมันมาจาก Amazon.de ด้วยราคา 18 Euro (900 บาท) รวมค่าส่งแล้ว



เมื่อเสียบการ์ดลงไปในเครื่อง desktop ที่ใช้ Debian etch แล้วปรากฏว่า video4linux ก็เจอ driver bttv ของการ์ดนี้ทันที ผมไม่ต้องทำอะไรเพิ่มเลย

โปรแกรมที่ใช้ดูทีวีบนคอมพิวเตอร์นั้นมีอยู่หลายโปรแกรม เช่น Mplayer, xawtv, Zapping, KWinTV, และ tvtime ซึ่งจากประสพการณ์ของผม mplayer นั้นใช้งานได้ครอบจักรวาล แต่มีประสิทธิภาพสูงสุดก็ต่อเมื่อดูไฟล์วีดีโอเท่านั้น

ส่วน xawtv นั้นก็มีปัญหาที่ interface มันเส็งเคร็ง Zapping ก็ดันมีบั๊กตั้งแต่ตอนติดตั้ง และผมขี้เกียจไล่ตามลงแพ็คเกจสำหรับ KWinTV (ผมใช้ gnome)
สุดท้ายแล้วตัวเลือกของผมคือ tvtime เพราะผมยังไม่มีเหตุผลอะไรให้ต้องเกลียดมัน การติดตั้งก็ทำได้โดยง่ายแสนง่าย เพราะมันมีข้อมูลอยู่ใน repository อยู่แล้ว

แต่ชีวิตคนเรามันคงไม่สดใสเหมือนในนิยาย

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

จากนั้นเมื่อลองใช้งาน tvtime ปรากฎว่าพบปัญหาว่าการ์ดจอไม่พบ DGA Extenstion สาเหตุเกิดมาจากการที่ไดรเวอร์ของ Nvidia นั้นไม่ซัพพอร์ท DGA (Direct Graphics Access)

เพิ่มข้อความนี้ไปใน Section Module เพื่อยกเลิกการใช้งาน dga

SubSection "extmod"
Option "omit xfree86-dga"
EndSubSection

จากนั้นก็ restart แล้วทำการจูนทีวีอีกครั้งโดยใช้คำสั่ง

tvtime-scanner

เลือกระบบและช่วงคลื่นทีวีด้วย สำหรับผมก็ PAL, europe ระหว่างนี้ก็ไปหาอะไรกินก่อนก็ได้เพราะมันอาจจะนาน

จากนั้นเปิดโปรแกรม tvtime เราก็จะพบ



.. noise บานเลย

update: ไปดูทีวีของเพื่อนคนไทยห้องข้างๆแล้วก็ไม่ชัดเหมือนกัน น่าจะเป็นที่สายเคเบิลกลาง

Friday, October 19, 2007

SSH Tunneling

ห้องที่ผมพักอยู่นี้เป็นหอพักของมหาวิทยาลัย และอินเตอร์เน็ตของหอพักก็เป็นเน็ตในเครือข่ายของมหาวิทยาลัยเช่นเดียวกัน แต่ถึงแม้เน็ตจะมีความเร็วสูงแค่ไหนผมก็ไม่สามารถใช้งานได้เต็มที่ เนื่องจากอินเตอร์เน็ตของหอพักได้จำกัดปริมาณการขนส่งข้อมูลนอกเครือข่ายภายนอกมหาวิทยาลัย (Transfer Volume) ไว้ที่ 3GB ต่อเดือน ซึ่งตัวเลขนี้นั้นนับทั้งดาวน์โหลดและอัพโหลดแล้ว

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

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

เริ่มจากการเปิดพอร์ทโดยใช้ ssh ซึ่งรองรับโปรโตคอล SOCKS4 และ SOCKS5
ssh -D 14141 account@server.address # เปิดพอร์ท 14141 ไปยังเครื่องปลายทาง
จากนั้นทำการตั้ง proxy ที่ browser ที่ใช้ให้ยิงไปที่ localhost พอร์ท 14141
แต่เนื่องจาก Opera ไม่รองรับ SOCKS4 หรือ SOCKS5 ทำให้ข้อมุลต้องผ่านโปรแกรมอีกตัวหนึ่งชื่อ Privoxy

ตั้ง proxy ของ Opera ให้ส่งข้อมูลไปที่ localhost พอร์ท 8118 (Privoxy default) และทำการแก้ไขข้อมูลของ Privoxy
sudo vi /etc/privoxy/config
เพิ่มบรรทัดนี้ลงไปในหัวข้อ forward-socks4 and forward-socks4a
forward-socks4 / 127.0.0.1:14141 .
เซฟไฟล์ และทำการ restart ตัว privoxy โดยใช้คำสั่ง
sudo /etc/init.d/privoxy restart
หลังจากนั้น 3GB ก็จะไม่ใช่ปัญหาใหญ่อีกต่อไป ขอบคุณเจสันที่เคยสอน พึ่งได้ใช้ประโยชน์จริงๆก็คราวนี้แหละ

Saturday, October 13, 2007

1-Euro-Handy

เมื่อวันที่ผ่านมาผมไปเปิดบริการมือถือของ O2 โดยการเปิดใช้งานแพ้คเกจนี้ผมต้องเซ็นสัญญาใช้งานเป็นเวลาอย่างน้อยสองปี

บริการที่ใช้คือ O2 Genion M ซึ่งมีอัตราค่าโทรศัพท์แบ่งออกเป็นค่าโทรภายใน Homezone และค่าโทรทั่วไป ซึ่งหากเราอยู่ในขอบเขตของ Homezone (ในบริเวณของถนนที่พักอาศัยอยู่) เราจะสามารถใช้โทรศัพท์ได้ฟรีถ้าโทรภายในเครือข่ายของ O2 หรือ Festnetz (โทรศัพท์บ้าน)

หากอยู่นอกขอบเขตนั้น หรือโทรเข้าเครื่อข่ายอื่นที่ไม่ใช่ O2 หรือ Festnetz เราจะต้องเสียนาทีละ 0,19 Euro (ประมาณ 9 บาทต่อนาที) ฉะนั้นหากไม่จำเป็นก็อย่าโทรนอก Homezone หรือโทรข้ามเครือข่ายเพราะมันแพง

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

ยกตัวอย่างเช่น



ผมซื้อ O2 Xda Cosmo มาในราคา 1 Euro (50 บาท) !! แต่ผมต้องเสียค่ารายเดือนแพงขึ้นเดือนละ 10 Euro (500 บาท) รวมๆแล้วสองปีก็เป็นเงิน 240 Euro (12,000 บาท) ก็โอเคแหละวะ

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

Wednesday, October 10, 2007

รับน้อง กิจกรรมนิสิต และการเมือง

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

ในต่างประเทศเองก็มีการรับน้อง แต่การรับน้องนั้นค่อนข้างแตกต่างกับไทยทั้งในแนวคิดและวิธีการ

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

กลับมามองของบ้านเรา สาระสำคัญดันไปอยู่ที่ว่ารุ่นน้องต้องเชื่อฟังและเคารพรุ่นพี่ เพราะรุ่นพี่ที่อายุไล่เลี่ยกันนั้นมีความรู้มากกว่า และบางครั้งรุ่นพี่บางคนอาจจะรู้ไปแล้วว่าเมื่อเรียนจบแล้วจะต้องเจออะไรบ้าง ทั้งๆที่ตัวเองไม่เคยเจอมาก่อน (รุ่นพี่เขากะเอาคร่าวๆ) สภานักเรียนนั้นเป็นการเลือกแล้วเลือกเลย ไม่มีการตรวจสอบ สุดท้ายเงินกิจกรรมก็ถูกปันส่วนอย่างไม่เป็นธรรม

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

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

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

ข้าวพะแนงเนื้อ

นี่คืออาหารไทยจานแรกที่ผมทำในเยอรมัน มีไส้กรอกที่เหลือในตู้เย็นเป็นเครื่องเคียง



ส่วนผสม
- เนื้อบด
- ใบโหระพา
- พริก
- เครื่องปรุงทั้งหลาย

ทั้งหมดสามารถหาซื้อได้ที่ร้านขายของเอเชียในเมือง นอกจากเนื้อบดที่ซื้อที่ไหนก็ได้