คิดๆ อยากจะเขียน code snippet (ที่ไม่เกี่ยวกับ mac development) ลงในนี้บ้างเหมือนกัน แต่ว่ามันไม่มี highlighting เจ๋งๆ เลย ไอ้ตัวที่ใช้อยู่นานนมกาเลอย่าง code2html ก็ดันไม่ highlight Haskell อีก จะเขียนเพิ่มเข้าไปเองก็ขี้เกียจ (ทั้งๆ ที่จริงๆ ก็ทำได้อ่ะนะ แต่ว่า code มันเขียนแบบ Perl-ish มากกกกก แถมไม่ factored ไม่แยก module เท่าไหร่) … อืมมม มันต้องมีคนคิดเหมือนเราสิ ว่าแล้วก็เริ่มหา
สักพักก็ไปเจอหน้า Plugins/Syntax Highlighting ที่ WordPress เอง แต่ว่าเท่าที่อ่านๆ ดูไม่ค่อยจะมีตัวไหนเข้าท่าเลยแฮะ (มันไม่ highlight Haskell ซักกะตัว เท่าที่อ่านแบบผ่านๆ) นอกจาก Vim Color แต่ว่าไอ้ตัวนี้ก็ดันไป dependent กับ Text::VimColor ที่เป็น Perl module ต้องลงผ่าน CPAN อีก เออ ไม่เป็นไร ลงก็ได้ แต่ว่าก็ดัน build ไม่ผ่านซะงั้น (test ผ่านน้อยไปหน่อย) จะ force install ลงเลย ก็ดันไม่ work อีก เฮ้อ เบื่อจริง ก็เลยต้องหาต่อไป
และแล้วเราก็ไปเจอ GeSHi: Generic Syntax Highlighter ที่เขียนในภาษา PHP เราก็เลยเอามาเขียนทำเป็น command line application ง่ายๆ ที่อ่านไฟล์ตาม argument แล้วก็เดาภาษาจาก extension ของไฟล์ แล้วก็พ่น highlighted code ที่เป็น HTML ออกมาให้เรา code-paste ใส่ blog ได้ผลดังนี้ (Haskell)
import List permute [] = [[]] permute xs = [x:ys | x <- xs, ys <- permute (delete x xs)]
หรือว่าภาษา Ruby แบบนี้
class Array def permute return [self] if size < 2 perm = [] each {|e| (self - [e]).permute.each {|p| perm << ([e] + p)}} perm end end [0,1,2,3].permute.each {|e| p e }
ก็ใช้ได้อ่ะนะ แต่ว่ามันอาจจะรก HTML code ไปหน่อยนึง
[update 1]: พอมี line number แล้วมันเละใน blog แฮะ เลยเอาออก ไว้จะแก้ CSS ทีหลัง ตอนนี้ขี้เกียจ (อีกล่ะ)
[update 2]: เพิ่งจะสังเกตจากหน้า web ว่า \\ ใน code haskell มันหายแฮะ เหลือแค่ตัวเดียว .. ไม่รู้เหมือนกันว่าทำไม code ฝั่งนี้ก็ยังอยู่นะ เลยไม่รู้จะว่าไงดี :-(
[update 3]: สุดท้ายก็เลยลงเอยด้วยการเขียน code ใหม่ไม่ให้มันมี \\ อืมมม อ่านเป็นภาษาคนกว่าเก่าแฮะ แต่ว่ามัน geek-ish น้อยลง :-P
[update 4]: อ๊ากกก GeSHi มันไม่มี Erlang highlighting! ว้า กำลังจะหัดเล่นอยู่เลย ว่าแต่ Erlang นี่ทำไมมันลูกเมียน้อยตอนนี้จังเลย emacs ก็ไม่มี (ผมใช้ Carbon Emacs distribution) TextMate ก็ไม่มี มีแต่ vim … สุดท้ายก็ตายรังสินะ แต่ว่า Emacs mode ของ Erlang ก็ไม่น่าหายากเท่าไหร่ [note -- ณ ปัจจุบัน เจอแล้ว] ไม่เป็นไร มีเวลาและชินๆ กับ Erlang มากกว่านี้เมื่อไหร่ (พอจะชินกับ module/keywords) แล้วเดี๋ยวค่อยทำเพิ่มเข้าไปใน GeSHi เองก็ได้วะ
Dilemma (ทางสองแพร่ง) ที่มีมาช้านานในบ้านเรา ว่าซอฟต์แวร์ที่เราใช้เนี่ย จะซื้อของแท้ หรือว่าหาใช้ของเถื่อนตามศูนย์ซอฟต์แวร์แห่งชาติ หรือว่าดาวน์โหลดจากเน็ต ซึ่งคำตอบของทางเลือกมันก็ขึ้นกับหลากหลายปัจจัยด้วยกันล่ะนะ
- หลายคน (ความเชื่อสาธารณะ) ยังคงมองซอฟต์แวร์ ว่าเป็นสิ่งที่แถมมากับเครื่องอยู่ พอจะซื้อเครื่องใหม่ ก็มักมีค่านิยมให้ร้าน load โปรแกรมให้เยอะๆ จะใช้ไม่ใช้อีกเรื่องนึง load ไว้ก่อน ซึ่งก็เลยกลายเป็นงูกินหางกับทางร้าน เพราะว่าการ load ซอฟต์แวร์ที่ลูกค้าต้องการให้ได้ กลายเป็น competing feature หนึ่งไปซะงั้น
- Trialware/Shareware หลายตัวที่มีให้ download ใช้เพื่อทดลองจากเน็ต พอหมดอายุหรือว่าหมด feature เราก็มักจะนิยมทำการ “หา crack” หรือ “หา serial” ที่มันก็ไม่ได้หายากหาเย็นเท่าไหร่ เป็นอันดับแรกๆ ในความพยายามที่จะทำให้เราได้ใช้ซอฟต์แวร์ตัวนั้นๆ ต่อไป
- ราคา อันนี้เรื่องใหญ่และเป็นปัญหาโลกแตก … จ่ายแพงกว่าทำไม ในเมื่อจ่ายร้อยเดียวได้ (หลายโปรแกรมด้วย) ทำไมต้องจ่ายเป็นพันด้วย? (ไม่ใช่แค่พันหรอก ซอฟต์แวร์บางตัวแพงกว่าเครื่องอีก อย่าง Mathematica เงี้ย ซื้อ laptop ได้สองเครื่องสบายๆ)
- Availability อันนี้อาจจะเป็นเรื่องใหญ่กว่าด้วย … โปรแกรมหลายตัวอยากใช้ด่วนน่ะ แต่ว่ามันไม่มีขาย ติดต่อตัวแทนจำหน่ายก็เรื่องมาก ท่าเยอะ ต้องมีกระบวนการมากมายวุ่นวาย ทั้งเรื่องการเงิน ฯลฯ เฮ้อ ขับรถไปศูนย์ซอฟต์แวร์แป๊บเดียว ดีกว่ากันเยอะ
- Support เราหลายคนก็ไม่ได้ต้องการ support อะไรมากมายกับโปรแกรมที่เราซื้อมาซะด้วย เพราะว่าส่วนมากก็ไม่ได้ใช้งานมากอะไรถึงขนาดที่ทำให้ support มัน crucial ขึ้นมา ใช้งานงูๆ ปลาๆ ไม่กี่ feature ไม่กี่อย่าง คลำๆ เอาเอง หรือว่าถ้ามันไม่ work จริงๆ ก็ไปเรียนเอา หรือว่าหาคนสอนแถวๆ ไหนก็ได้เอา
เอาเป็นว่า จะเหตุผลใดก็แล้วแต่ ทำให้การใช้ซอฟต์แวร์เถื่อนยังคงเป็นทางเลือกหลักของการใช้งานโปรแกรมคอมพิวเตอร์ในบ้านเราอยู่ดี
แล้วผมเขียนถึงเรื่องนี้ทำไม … พอดีวันนี้ iWork 08 หมดอายุ trial 30 วันแล้ว ก็เลยไปซื้อของแท้แบบมีกล่องมาซะหน่อย (จริงๆ ซื้อ license/serial ผ่าน net ก็ได้ แต่ว่าไหนๆ มันก็ราคาพอกัน ได้กล่องด้วยดีกว่า .. พวกบ้าวัตถุก็เงี้ย) … แล้วผมทำงั้นไปทำไมล่ะเนี่ย ก็ในเมื่อ iWork มันก็หา serial เถื่อนได้นี่ (จริงๆ ผมก็มี serial เถื่อนอยู่ในมือเรียบร้อยแล้วล่ะ)
ผมยืดถือธรรมเนียมปฏิบัติส่วนตัวอยู่ไม่กี่ข้อในการใช้ซอฟต์แวร์นะ
- Freeware/Free Software/Open Source มาก่อนเสมอ ถ้าทำได้ จ่ายแพงกว่าทำไมถ้ามีของฟรี (จริงๆ ไม่ใช่ละเมิดเค้ามา) หลายตัวมันไม่ feature-complete แต่ว่าถ้าเราต้องการใช้มากกว่านั้นและบังเอิญมันมีใน commercial software ก็จ่ายตังค์ซื้อ feature พวกนั้นไปสิ ถ้าเราไม่มีปัญญาจ่ายก็ถือว่าเราไม่ได้ต้องการมันจริง (รักจริงต้องสู้สินสอดได้) และใช้ๆ ไปเถอะ เราจะพบว่าหลายครั้งเราหลอกตัวเองว่าเราต้องการโน่นนี่ จริงๆ ไม่มีไม่ตายหรอก พวก Freeware/FS/OS พวกนี้หลายต่อหลายตัว “เจ๋ง” กว่าที่หลายคนคิดเยอะ
- ถ้าจำเป็นจริงๆๆๆๆ ก็ใช้มันไปเถอะ ไอ้ซอฟต์แวร์เถื่อนน่ะ แต่ว่านี่หมายถึงต้องหา Freeware/FS/OS ที่ทำงานแทนได้แบบสุดความสามารถแล้วนะ ห้ามเอามาเป็นข้ออ้างเด็ดขาดด้วย และต้องใช้ในการทำมาหากิน “เท่านั้น” และ
- “ถ้า” เราทำเงินจากมัน ไม่ว่าจะโดยตรงหรือโดยอ้อม ได้มากกว่าราคาซอฟต์แวร์ตัวนั้นเมื่อไหร่ เราจะต้องซื้อมันแบบถูกต้อง ไม่มีข้ออ้าง เพราะว่าคุณทำเงินได้มากกว่าราคามันแล้วนี่
ผมก็เลยลองไล่ซอฟต์แวร์ในเครื่องดู พบว่าผมมี Freeware/FS/OS ค่อนข้างหลายตัวที่เป็นชิ้นส่วนสำคัญในการทำงานของผม ส่วนโปรแกรมที่ผมใช้ทำงานจริงๆ ผมก็เสียเงินซื้อเสียเป็นส่วนมาก (เช่น iWork ที่ Pages มันช่วยชีวิตผมในการทำ poster งานวิจัยมาหลายครั้งแล้ว และ Keynote ที่ถ้าไม่มีมัน ชีวิตผมในฐานะวิทยากรรับเชิญตามที่ต่างๆ และอาจารย์ประจำ คงจะกร่อยไปอีกเยอะ แล้วก็มี TextMate อีกตัว และอื่นๆ อีกหลายตัวด้วย) ….ส่วนที่ยังใช้แบบเถื่อนอยู่ก็มีบ้างแหละครับ แต่ว่านั่นเป็นเพราะผมต้องใช้มันบ้าง (อย่างมากก็เดือนละครั้ง) .. แต่ไม่เคยทำเงินจากมันได้ไม่ว่าจะตรงหรืออ้อม และหาตัวแทนมันไม่ได้จริงๆ (พยายามหาแล้ว หาอีก หาแล้ว หาอีก) .. ก็ถือว่ายังตรงกับธรรมเนียมตัวเองล่ะนะ
ปล. ผมเห็นน้องๆ หลายคนนะ หัดเขียนโปรแกรมจะต้องใช้ Visual Studio Enterprise Architect edition ทั้งๆ ที่จริงๆ แล้ว Express (ซึ่งฟรี) มันก็มี หรือว่าหลายคนหัดทำ 3D ก็ไปใช้ Maya “Unlimited” ทั้งที่จริงๆ แล้ว Personal Learning Edition มันก็มี .. ฯลฯ
ว่าแต่คุณล่ะ มีหลักการ/ธรรมเนียมปฏิบัติยังไงในการใช้ซอฟต์แวร์?
[update 1]: ขอขยายความข้อ 2 นิดหน่อย คือบางคนชอบเอาข้ออ้างที่ว่า “ต้องการศึกษาเพื่อนำไปใช้งาน” โดยมากมักจะเกิดขึ้นกับซอฟต์แวร์ที่เป็นระดับ professional เช่นฐานข้อมูล Oracle ชุดพัฒนาซอฟต์แวร์ VS.NET Enterprise Architect โปรแกรมแต่งภาพ Photoshop CS3 โปรแกรม 3D Modeling/Animation เช่น Maya Unlimited บางทีก็เข้าใจและเห็นด้วยนะ ที่ว่าบางทีเราก็ต้องการเรียนรู้โปรแกรมพวกนี้เพื่อนำไปทำงานจริงในอนาคต ซึ่งโปรแกรมพวกนี้จริงๆ แล้วหลายตัวก็จะมี scaled-down version ให้ใช้ฟรีหรือราคาถูก และไม่ยอมให้นำไปใช้เพื่อทำการค้าได้ ให้ใช้อยู่แล้ว ถ้าจำเป็นต้องใช้โปรแกรมพวกนี้จริงก็ค่อยซื้อ version ที่เหมาะสมเอาทีหลัง หรือว่าถ้ามันไม่มี version อย่างที่ว่าจริงๆ (แต่ว่าบางทีก็มี trial-ware version) ก็ใช้เถื่อนใช้ crack ไปก่อน จนกระทั่งเราทำเงินกับมันได้ ซึ่งเร็วหน่อยก็ดี และซื้อใช้ซะ
ด้วยความที่เป็นคนชอบอ่านหนังสือมาก แล้วก็ซื้อหนังสือเก็บไว้เยอะเหมือนกัน (เดือนๆ หมดหลายตังค์) ก็เลยเป็นขาประจำของร้านหนังสือหลายๆ ที่ ไม่ว่าจะเป็น B2S (มักจะไปที่ Central ปิ่นเกล้ามากกว่าที่อื่น Central World ไปบ้าง), Asia Books (หลายสาขา โดยมากไปซื้อ magazines), ศูนย์หนังสือจุฬาฯ ก็ไปเหมือนกัน แต่ว่าพักหลังๆ ไม่ค่อยได้ไปแล้ว
แต่ไม่ว่าที่ไหนๆ ก็ไม่ค่อยจะมีหนังสือแบบที่ผมชอบอ่านมากที่สุดเท่าไหร่นัก ….
- หนังสือแนววิชาการหนักๆ สำหรับหลายสาขานี่อาจจะหาอ่านไม่ยากเท่าไหร่ที่ศูนย์หนังสือจุฬา แต่ว่าหนังสือวิชาการเกี่ยวกับ Computer/Computing Science นี่ไม่ค่อยจะมีเท่าไหร่หรอกนะ มันมีแต่หนังสือ Professional books ซะเป็นส่วนมาก (ก็เข้าใจว่านี่อาจจะเป็นความต้องการของตลาดบ้านเรา)
- หนังสือ Popular science นี่หายากมาก ไม่ค่อยจะมีเลยแฮะ นานๆ จะเจอบ้างที่ Asia Books (Siam Discovery) หรือว่า B2S Central World และนี่คือสิ่งที่ผมคิดถึงที่สุดเวลาไปร้านหนังสือหลายๆ ที่ใน Tokyo อาจจะเรียกได้ว่าเมื่อก่อนผมหมดเงินไปกับการซื้ิอหนังสือแนวนี้อาจจะพอๆ กับหนังสือวิชาการหนักๆ เลยก็ได้มั้ง
ตัวอย่างหนังสือ Popular science ที่ผมชอบมากเป็นพิเศษก็คงจะเป็น Emperor’s New Mind ของ Roger Penrose, Chaos ของ James Gleick, Linked ของ Albert-Laszlo Barabasi, Ubiquity ของ Mark Buchanan แล้วก็ยังมีอีกหลายต่อหลายเล่มที่ถ้าจะเอามา list ไว้ในนี้หมดคงจะไม่ค่อยเข้าท่าเท่าไหร่
ที่ผมชอบหนังสือพวกนี้ก็เพราะว่า มันให้ความรู้เราพอประมาณ อาจจะไม่ค่อยลึกเท่าไหร่นักในแต่ละเรื่อง แต่ว่าให้เราเห็นคู่ไปกับความเป็นจริง สิ่งที่อยู่รอบตัว เหตุการณ์ต่างๆ ที่เรารู้จักดีมากอยู่แล้ว สิ่งที่จับต้องได้ง่าย ฯลฯ หลายต่อหลายเล่มเป็นการเชื่อมโยงทฤษฎีต่างๆ นับสิบเข้าด้วยกันเป็นเรื่องเดียว (เช่น Emperor’s New Mind) หรือว่าให้แนวคิดใหม่ๆ แบบที่ไม่ค่อยจะได้เท่าไหร่นัก
และถ้าเราสนใจเรื่องใดเรื่องหนึ่งมากๆ ขึ้นเมื่อไหร่ ค่อยไปหาอ่านเอาตามหนังสือทฤษฎีที่หนักขึ้น complete ขึ้น และเป็นวิชาการมากขึ้น
น่าเสียดายเหลือเกินที่หนังสือแนวนี้หาอ่านยากมากในบ้านเรา … และแล้ววันนี้ความฝันของผมก็เป็นจริง
หลังจากไม่ได้ไปที่ Siam Paragon นานมาก (แต่ว่าไปทีไรก็ไปไม่กี่ที่ ส่วนมากไปนั่งกินข้าวร้านข้างล่าง ไปซื้อ/ดูหนังสือที่ Kinokuniya ไปเดินเล่นใน iStudio แล้วก็ไปยืนเกาะกระจกน้ำลายยืดอยู่แถวๆ Showroom Mesarati) วันนี้้เบื่อโลกมากเลยเข้าไปดู และนี่คือสิ่งที่ผมเห็น
|
ว้าว ตู้หนังสือขนาด(ค่อนข้าง)ใหญ่ทั้งตู้ ที่มีแต่หนังสือ Applied Math (สำนักพิมพ์ Dover ที่มีหนังสือ classic ราคาถูกค่อนข้างเยอะ เล่มไม่กี่ร้อย) หนังสือ Physics และแน่นอน หนังสือ Popular Science หลายสิบเล่ม!
ก็เลยตบกลับมาบ้านอีกเกือบ 10 เล่ม มีหลายเล่มที่น่าสนใจ เช่น I am a Strange Loop ของ Douglas Hofstadter (คนเขียน Godel, Escher, Bach หนังสือที่ผมชอบที่สุดตลอดกาล), The Age of Spiritual Machines ของ Rayn Kurzwell, Why Things Bite Back ของ Edward Tenner, The Equation that Couldn’t be Solved ของ Mario Livio, และสุดท้าย Meta Math! The Quest for Omega ของ (ทายซิใคร) Gregory Chaitin!!!! (บิดาของ Algorithmic Information Theory)
แล้วก็เดินเลยเข้าไปหน่อย เจอหนังสือวิชาการหนักๆ ของทาง Computer Science ด้วยแฮะ!! (ไม่ใช่หนังสือ Professional Books ที่ขายกันเกลื่อนหิ้งหนังสือที่เขียนว่า “Computer Science” ทั่วไป แม้แต่ศูนย์หนังสือจุฬา) เลยซื้อ Fundamentals of Natural Computing: Basic Concepts, Algorithms, and Application ติดมือกลับมาเล่มนึง จริงๆ อยากได้อีกหลายเล่มแต่ว่าสงสารบัญชีธนาคารของตัวเอง …. เล่มนี้ก็ดีนะ คิดว่าจะเอามาเป็นหนังสือ Introduction ของคนที่อยากจะเข้า lab วิจัยเลย เพราะว่านอกจากจะมีเรื่อง Evolutionary Computation แล้วยังมีพวก Swarm Intelligence, Fractals Geometry, Artificial Life, DNA Computing, Quantum Computing ด้วย
เฮ้อ … เมืองไทยเจริญขึ้นเยอะเลยแฮะ (ถ้าคิดจากวัตถุที่เรามีในประเทศนะ … หนังสือคือวัตถุประเภทหนึ่ง) แต่ว่าคนบ้านเราจะเจริญตามด้วยหรือเปล่าน้อ หรือว่าเจริญลงก็ไม่รู้แฮะ (ไม่รู้ว่าตอนนี้คนไทยอ่านหนังสือกันเฉลี่ยแล้วปีละเท่าไหร่แล้ว .. ตัวเลขสุดท้ายที่ได้ยินนี่น้อยจนน่าใจหาย … หนังสือใน lab เราก็ซื้อมาเต็มตู้ เด็กๆ ที่ทำงานด้วยก็ไม่ค่อยจะอ่าน ไม่เคยอ่าน ไม่ค่อยจะสัมผัส ถึงจะบังคับ ถึงจะพยายามแนะนำให้อ่าน ถึงจะฯลฯ แล้วก็เถอะนะ)
ไม่เป็นไรน่า …. ก็ยังมีเรื่องให้ใจชื้นน่ะแหละ


Recent Comments