Setup Aquamacs for Erlang

A quick note about how to setup Aquamacs (Cocoa Emacs distribution) for coding Erlang (the next kid in town).

I assume you install Erlang via Macports so if you install it via any other mean, something will vary (I used to install it, along with everything else, from source; but currently the Macports is just easier).

The setup is simply adding the following lines into your ~/.emacs file

(setq load-path (cons "/opt/local/lib/erlang/lib/tools-2.6.4/emacs" load-path))
(setq erlang-root-dir "/opt/local/lib/erlang")
(setq exec-path (cons "/opt/local/lib/erlang/bin" exec-path))
(require 'erlang-start)

Please note that the actual path may vary from installation to installation (version numbers, most probably). So check yours.

My Dad’s further comment:

Same as previous post, here’s my dad’s further comment on education, via e-mail. Note: Highlights are my own, on what I think are important messages.

Dear Son,
I saw my comments in your bloc.
I would like to add that our education system or our culture lead to surface knowledge. We do not go down deep to learn the basic behind.
I will give you an example.
If you read the research on life science these days you will see so many cluster analysis of similarity. This could be similarity among several varieties in any species. It is so easy to make these dendrograms using so many statistical packages available free on the web.
But, do we know the basic behind those calculations?.
It is fine for the users or technician. But, how about those with prestigious doctorate degree.
So, where are we going in education?
Love,
Dad

My Dad’s comment on “Generation Click”

ส่ง e-mail link บทความ “Generation Click” ให้พ่ออ่าน พ่อ e-mail กลับมาว่า

I just returned from KKU few minutes ago. Tomorrow, I will go to Chiang Mai and will return on Saturday. How about that?

The ‘Generation Click’ is good.

May be the academia has to work harder to bring the thinking process back to life. Or, the young generation will have to depend on some tools all the time. They cannot thinking about making the tools themselves.

Love,
Dad

Thank you Dad! Your comment really worths its own entry. It’s really that good! Let me repeat what I think is very important:

May be the academia has to work harder to bring the thinking process back to life. Or, the young generation will have to depend on some tools all the time. They cannot thinking about making the tools themselves

“Generation Click”

กลับบ้านคราวที่แล้ว นั่งคุยกับพ่อเรื่องน่าสนใจหลายเรื่อง เรื่องหนึ่งก็คือ เรื่องผู้ใช้คอมพิวเตอร์ ทั้งเป็นผู้ใช้แบบ user จริงๆ และนักคอมพิวเตอร์ นักเทคโนโลยีสารสนเทศและการสื่อสาร และโปรแกรมเมอร์ generation ใหม่ ที่พ่อผมเรียกว่า Generation Click

คุณพ่อบอกว่า “พวก Generation Click เนี่ย ไม่เจอ icon ไม่เจอเมนู ให้ click ได้ แล้วทำอะไรไม่เป็นเลย” แล้วอีกไม่นาน ก็ต่อด้วย “แบบนี้เขียนโปรแกรมใช้งานเองลำบากแย่เลย เพราะเขียนโปรแกรมจริงๆ ก็แค่เอาคำสั่งพวกนั้นมาต่อๆ กัน ไม่ใช่เหรอ?”

อืมมมมมม เห็นด้วยแฮะ

ก่อนจะพูดต่อไป ขอพูดถึงตัวเองหน่อย ….. ผมอาจจะโชคดีพอ ที่เกิดมาทันสมัย DOS (เครื่องแรกในชีวิต ที่ตั้งที่บ้าน ใช้งาน DOS 5.0 — ไม่มีเมาส์ด้วยซ้ำไป) ทำให้การทำงานกับ command line เป็นอะไรที่เป็นเรื่องปกติ รู้สึก at home กับมันมาก อยากจะให้มันทำอะไร ก็สั่งมันตรงๆ เป็นคำสั่งๆ ไป และแต่ละคำสั่งก็จะมี option อะไรก็ว่าไป ไม่พอ กว่าจะเล่นเกมได้แต่ละเกมๆ ก็ต้องแก้ config.sys, autoexec.bat กันวุ่นวาย ถึงขนาดต้องเขียน batch file เอาไว้เปลี่ยนสองไฟล์นี้เอง ด้วยความรำคาญ

พอชีวิตเริ่มเจอ GUI มากขึ้น ไม่ว่าจะเป็น Windows 3.x, Windows 95 ก็ได้ทุนไปเรียนญี่ปุ่น ก็พอเดินเข้าห้องคอมพิวเตอร์วันแรก ก็เจอ SGI IRIX เจอ GUI แบบไม่เคยเจอมาก่อน และต้องทำงานกับ Shell บน terminal emulator (ถ้าจำไม่ผิด รู้สึกว่าจะเป็น tcsh) ทำทุกอย่างบนนั้นหมด เหมือนกับเปลี่ยนโลกไปเยอะ จากนั้นเพื่อนๆ สนิทๆ กัน (Peter Suranyi, Janos Gyerik) ก็ยุให้เล่น Linux ก็เลยหามาลง ซึ่งก็กว่าจะหาทางทำให้ X-Windows มันทำงานได้ กว่าจะฯลฯ ได้ ก็แทบแย่

ประเด็นคือ การอยู่กับ terminal หรือ command prompt ทุกชนิดของผม ทำให้ผมมองการใช้งานคอมพิวเตอร์ เป็น “บทสนทนา” ระหว่างผมเอง กับคอมพิวเตอร์ ไม่ว่าผมจะใช้โปรแกรมอะไรก็ตามที่สามารถใช้งานในลักษณะ terminal ได้ จะเป็น MySQL, Octave, R หรือว่าโปรแกรมที่เป็น command line-based เช่น imagemagick ที่เอามาประกอบกับ shell scripting ได้ หรือว่า interactive programming environment ต่างๆ เช่น IRB, Python, Scheme, Haskell

กลับมาถึงบทสนทนาระหว่างผมกับคุณพ่อ

คุณพ่อผม เป็นนักปรับปรุงพันธ์พืช ที่ใช้ dBase 3 Plus ในการเก็บข้อมูล มานานมาก และเขียนโปรแกรมใช้งานเอง เริ่มจากใช้งานฐานข้อมูลนั้นๆ ทีละคำสั่งๆ แล้วก็เอาคำสั่งพวกนั้นมาต่อๆ กันเป็น routine/sub-routine และก็เริ่มซับซ้อนขึ้นเรื่อยๆ จนปัจจุบัน เป็นโปรแกรมที่มีความซับซ้อนมาก และทำงานได้ดี ช่วยงานได้เยอะมาก

สิ่งที่ท่านพบก็คือ นักปรับปรุงพันธ์รุ่นใหม่ ซึ่งใช้คอมพิวเตอร์ในการทำงานมากขึ้น ไม่ว่าจะในการวิเคราะห์ทางสถิติ หรือว่าการวิเคราะห์อื่นๆ กลับไม่ค่อยจะสามารถพัฒนากระบวนการคิดนั้นๆ ได้ และไม่สามารถที่จะมองความเชื่อมโยงระหว่าง process ระหว่างโปรแกรมได้เท่าไหร่ ไม่ต้องพูดถึงเรื่องเขียนโปรแกรมเลย ยิ่งกว่านั้น ในการทำงานทุกอย่าง จะมองหาแต่ icon ของคำสั่ง กระบวนการทำงานโดยทั่วไปคือ select & click และมองไม่ออกว่า จริงๆ สิ่งที่ทำๆ อยู่เนี่ยแหละ คือ “การสนทนา” ที่หากว่าบันทึกไว้ มันก็คือการเขียนโปรแกรมน่ะแหละ แต่พวกนี้กลับรักที่จะทำทุกอย่างแบบ manual แทน (เพราะว่าตัวเองได้เป็นคน click icon คำสั่งกระมัง)

มันเลยกลับมาถึงเรื่องที่ผมบ่นๆ ไว้บ่อยๆ เรื่องนักศึกษาในสาขาวิชาที่ต้องเรียนเขียนโปรแกรม ซึ่งพบว่า มีปัญหากับกระบวนการคิดค่อนข้างเยอะ และไม่สามารถคิดอะไรในลักษณะ “เอาคำสั่ง มาต่อกัน” หรือ chain ของ Input-Process-Output ได้เลย

ผมลองตั้งโจทย์คร่าวๆ ว่า “มีไฟล์อยู่หนึี่งไฟล์ ข้างในไฟล์มีคำอยู่เยอะ ซ้ำๆ กัน ผมอยากรู้ว่ามีคำไม่ซ้ำกันทั้งหมดกี่คำ?” (ทั้งนี้ คำทุกคำ เป็นตัวเล็กหมด และไม่มีอักขระแปลกๆ ตัวอย่างเนื้อความในไฟล์คือ this is a cat this is a bat this is a map this is a phone)

เชื่อหรือไม่ว่า ไม่มีนักศึกษาสามารถคิด logic ของโจทย์นี้ได้แบบเป็นขั้นเป็นตอน ชัดเจน ได้แม้แต่คนเดียว ใน class ที่ผมสอน! ทั้งๆ ที่ logic มันง่ายแสนจะง่าย ก็แค่

  • เปิดไฟล์ เอาเนื้อความ
  • เอาเนื้อความในไฟล์มา แยกเป็นคำๆ
  • เอาคำที่ได้ มากรองเอาคำซ้ำออก
  • นับคำที่เหลือ

จะเห็นว่า มันก็เป็น chain ของ I-P-O อยู่ชัดเจนนะ คือ สมมติว่ามันเป็นฟังคชัน f, g, h, i ตามลำดับ ก็จะได้ว่าคำตอบของมันก็คือ i(h(g(f(x)))) … เขียนให้มันง่ายๆ กว่านี้หน่อย สมมติว่าเป็นฟังคชันชื่อ readfile, splitwords, unique_element, count ตามลำดับ ก็เป็น count(unique_element(splitwords(readfile(“filename”)))) ใช่มั้่ย จากนั้นก็แค่เอาไปดูว่า แต่ละภาษาหรือ environment เนี่ย เอามาทำแบบนี้ยังไงดี มีฟังค์ชันมั้ย ต้องเขียนเองมั้ย ถ้าจะเขียนเองจะต้องเขียนยังไง ก็แค่คิด I-P-O แบบเดิม ลงไปให้ลึกขึ้น เท่านั้น

ถ้าเขียนใน bash shell ก็คงเป็น

cat filename.txt | tr " " "\n" | sort -u | wc -w

ถ้าเป็น ruby ก็เป็น

File.read("filename.txt").split(" ").uniq.count

ถ้าเป็น haskell ก็เป็น

content <- readFile "filename.txt"
length (List.nub (words content))

ซึ่งจะซับซ้อนกว่าตัวอื่นๆ นิดหน่อย เพราะว่ามีเรื่อง IO String กับ String มาเกี่ยวข้อง (purely functional ก็แบบนี้แหละ)

แถม ... เป็น C++ ก็ยาวหน่อย (ไม่รวมพวกการ include library มาใช้นะ)

int main()
{
  ifstream fin("filename.txt");
  set<string> words;
  copy(istream_iterator<string>(fin), istream_iterator<string>(),
       inserter(words, words.begin()));
  cout << words.size() << endl;
  return 0;
}

จะเห็นว่า logic มันไม่ได้เปลี่ยนเลยสักกะนิด เพียงแต่ว่าอาจจะ verbose บ้าง รูปแบบต่างกันบ้าง คำสั่งต่างกันบ้าง

วันนั้นข้อสรุปของบทสนทนาระหว่างผมกับพ่อก็คือ Generation Click พบความลำบากมากกว่า ในการคิดสื่อสารกับคอมพิวเตอร์เป็นขั้นตอน ด้วย text ด้วยคำสั่งต่างๆ ดังนั้นอาจจะช่วยได้ หากทุกคำสั่งมันมี icon หมด และลากมาวางต่อๆ กันได้ เหมือนกับ automator.app ใน Mac OS X หรือบรรดา visual programming ทั้งหลาย

สมัยผมสอน OOP ผมเคยให้ นักศึกษาเล่นกับ Alice ซึ่งก็เป็น visual programming พอสมควร ก็พบว่าได้ผลในระดับหนึ่ง แต่ว่าพอถึงเวลาต้องไปเขียน code ซึ่งเป็น text ก็ยังพบปัญหาเดิมๆ อยู่ เทอมนี้ก็เลยขอหักดิบ ให้ใช้งาน shell มันซะเลย เผื่ออะไรๆ จะดีขึ้นมาบ้าง

ลงท้ายด้วยการเผา advisee หน่อยละกัน ... เจอพวกที่แทนที่จะคิด logic ของระบบงาน กลับคิดแต่ว่าจะต้องใช้โปรแกรมอะไร ต้องเริ่ม click ที่ปุ่มไหน แล้วจะ click ปุ่มไหนต่อ งานถึงจะเสร็จ ....​ ฮา (ไม่ออก)

rawitat.com: 2009 และทิศทางใน 2010

ปี 2009 เป็นปีที่ผมอัพเดท weblog ส่วนตัวน้อยที่สุด ตั้งแต่เริ่มเขียน blog มาที่ blogspot, exteen, เว็บไซต์ที่ภาควิชา ก่อนจะย้ายมาที่นี่ .. นั่นคือ แทบไม่ได้อัพเดทเลย และหายไปทีละหลายๆ เดือน ซึ่งส่วนหนึ่งมาจากการเริ่มเล่น social network ต่างๆ มากขึ้น อะไรหลายๆ อย่าง แทนที่มาเขียนในนี้ ก็ไปเขียนใน twitter (@rawitat) ซะเป็นส่วนมาก

แต่ด้วยเหตุผลส่วนตัวหลายๆ อย่าง ทำให้ผมเลิกเล่น twitter พร้อมกับ instant messaging ทุกอย่าง ซึ่งนั่นแปลว่า ต่อจากนี้ผมอาจจะกลับมาเขียน blog มากขึ้นมั้ง

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

ซึ่งเรื่องอื่นๆ ไม่ว่าจะเป็นเรื่องหนังสือ โปรแกรม ภาษาโปรแกรม ไลบรารี่ ของเล่นต่างๆ ก็เข้าประเด็นเดียวกันทั้งนั้นเลย … อ่อ รวมถึงเรื่องกล้องเรื่องเลนส์ด้วย

ผมเคยคิดจะทำ blog เฉพาะทางมากขึ้น นอกจากที่ Thai Mac Geeks ซึ่งตัวหนึ่งก็ทำเกือบเสร็จแล้ว ทดสอบแล้ว เหลือแต่ปรับนิดปรับหน่อยเท่านั้น แต่ว่าจนแล้วจนรอดก็ไม่ได้ทำ และจากประสบการณ์ที่ทำ Thai Mac Geeks ก็พบว่า การผลักดัน community เฉพาะทางนั้น ไม่ง่าย โดยเฉพาะเมื่อไม่มีกิจกรรมอะไรอย่างต่อเนื่อง

ผมก็ยังคิดว่าจะทำ blog เฉพาะทาง แต่ยังไม่ใช่เร็วๆ นี้

ดังนั้นก็เลยมาถึงทิศทางของ blog นี้ในปี 2010

  • จะกลับมาเขียนให้บ่อยขึ้น จริงๆ ก็สัญญาแบบนี้ทุกปีน่ะแหละ แต่ปีนี้คงจะทำได้น่ะแหละ เพราะว่าเลิกเล่น social network (อาจจะนอกจาก multiply ทั้ง แต่อาจขยับไปเล่น flickr แทน) แต่หลายอย่างอาจจะไม่ละเอียดเท่าเดิม เพราะว่าติดนิสัยเขียนทวิตเตอร์พอสมควร
  • เนื้อหาคงแบ่งเป็นไม่กี่ประเภท เรื่องถ่ายรูป อุปกรณ์ถ่ายรูป คงเป็นหลัก จนกระทั่งตัดสินใจกลับมาทำวันละรูป และคนเล่นกล้อง ต่ออีกครั้ง ส่วนเรื่อง Mac คงเขียนลง Thai Mac Geeks เรื่องการพัฒนาโปรแกรมคงไม่ค่อยมี เพราะไม่ค่อยได้เขียนเอง เรื่องอื่นๆ คงมีบ้าง
  • อยากจะทำ Photo Blog มากมาย ดังนั้น blog นี้จะกลายเป็น Photo Blog ส่วนตัวของผมครับ ซึ่งจะพยายามโพสท์ให้ได้สัปดาห์ละรูป

ลอกกุญแจ ได้คะแนนเต็ม

จำได้ว่าตัวเองพูดประโยคนี้ครั้งแล้วครั้งเล่า ไม่ว่าจะเป็นการพูดกับเพื่อน พูดกับลูกศิษย์ พูดกับพ่อแม่ พูดกับตัวเอง ทั้งพูดในที่สาธารณะ ทั้งพูดในที่ส่วนตัว ฯลฯ ซ้ำแล้วซ้ำเล่า ซ้ำแล้วซ้ำเล่า ตั้งแต่ยังเป็นนักเรียน จนถึงวันนี้

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

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

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

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

Wish List 2010 ในฐานะ “ผู้บริโภค”

ถึงจะยังไม่สิ้นปี … แต่ว่าก็คิด wish list สำหรับปีหน้าไว้หน่อยนึง นี่ไม่ใช่การตั้งเป้าหมายของตัวเองนะ แต่เป็นสิ่งที่อยากได้ อยากให้เกิดขึ้น หรืออยากให้มี ไม่ใช่อุดมคติ ไม่ใช่หวังลมๆ แล้งๆ (เช่น อยากให้โลกสงบสุข อยากให้ทุกคนรักกัน อยากให้ตัวเองสุขภาพดี อยากให้ น.ศ. ตั้งใจเรียน ฯลฯ) เรียกว่า เป็น wish list ในฐานะ “ผู้บริโภค” ละกัน

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

  • Nikon ขอร้องเถอะนะ ช่วยออก 28/1.4, 35/1.4, 135/1.8 VR (เรียงลำดับความอยากได้) มาหน่อยเถอะ รอเลนส์ Wide ไวแสงมานานแล้ว (อ่อ ตัวสุดท้ายไม่ Wide แต่อยากได้มากๆ)!
  • Apple ขอร้องเถอะนะ ข่วยทำให้ Magic Mouse มันใช้งาน Middle Button แบบ official ได้หน่อยเถอะ รับไม่ได้อย่างรุนแรง
  • Sigma ขอร้องเถอะนะ ช่วยทำ DP ให้มันใช้งานได้หน่อย และอยากได้เลนส์สัก 35/2 อ่ะ (แต่ว่าถ้ายากไป 50/2 ก็ยังดี … 41/2.8 มัน focal length ประหลาดๆ) ถ้าอันนี้ยาก ก็อันถัดไป ..ง
  • Ricoh ขอร้องเถอะนะ ช่วยเพิ่มขนาด sensor ให้กับ GR-DIII หน่อย ทุกอย่างโดนใจหมดเลย แต่ว่า sensor มันเล็กไปอ่ะ (แต่ว่าถ้ามันใหญ่ขึ้น ก็แลกกับขนาดที่จะใหญ่ขึ้นอ่ะนะ ….) จริงๆ ทำเป็น module 28/2 ที่มี sensor ใหญ่หน่อยนึง (ไม่ต้องถึงกับ APS-C หรือ 4/3 หรอก) สำหรับ GXR ก็ได้
  • Leica ขอร้องเถอะนะ ลดราคา M9 ลงมาหน่อยเถอะ ได้โปรด! (อยากได้มากๆ แต่ไม่มีตังค์พออ่ะ เพราะว่าคิดว่าจะต้องหาเลนส์ ASPH สักตัวด้วย)
  • ไม่รู้เป็นไรนะ แต่อยากได้ 25/1.4 บน m4/3 มากๆ เลย (17/2.8, 20/1.7 เอาจริงๆ มันยังไม่โดนอ่ะ … แต่ว่าเลนส์คงจะตัวใหญ่หน่อยแฮะ ไม่เป็นไรมั้ง ขนาด 50/1.4 ของ Sigma ยังคิดว่าตัวมันเป็น 85mm ได้เลย) หรือว่าสุดท้ายต้องหา 24/1.4 แล้วใช้ converter เอา? … ไอ้ option นี้ก็ดันมีแต่ Summilux ซะด้วยสิ แพงโคตร
  • ผู้ผลิตกล้องทั้งหลาย ขอร้องเถอะ จบ MegaPixels War ซะที (แต่ว่าสงครามนี้ก็เหมือนจะจบลงไปเรียบร้อยแล้ว อย่างน้อยๆ ก็ในตลาด compact และไม่มีผู้ชนะซะด้วย มีแต่ผู้แพ้) แต่กันมาเพิ่มขนาด sensor แทน หรือไม่ก็เน้นเรื่อง lens หรือ innovation ใหม่ๆ ที่เป็น innovation เกี่ยวกับ “การถ่ายรูป” แทน (ไอ้พวกฟีเจอร์ที่มันเป็นเรื่องบ้าเทคโนโลยี ไม่ต้องมากนักก็ได้ มากจนน่าเบื่อ)
  • Canon ขอร้องเถอะ ช่วยลงมาเล่นเกม compact sensor ใหญ่กับเค้าซะที (Nikon มี patent เรื่องนี้หลุดมาเรื่อยๆ แต่ว่ารู้สึกว่า sensor จะเล็กกว่าชาวบ้าน — เล็กที่สุดในบรรดา compact sensor ใหญ่ทั้งหมด)
  • Apple ขอร้องเถอะนะ … ช่วยทำ MacBook Pro แบบจอขอบดำ และ Matte ทีเถอะ (ชอบจอขอบดำ .. แต่ว่าชอบ Matte ซึ่งตอนนี้อยากจะได้ Matte ก็ต้องเป็นขอบเทา — เอาแบบ official นะ)
  • ใช่ … Apple ขอร้องอีกแล้ว ทำอะไรก็ได้ ที่มันอ่านหนังสือง่ายๆ หน่อย จะเป็น Tablet, Big iPhone หรือว่าอะไรก็แล้วแต่ ออกมาด้วยจะเป็นพระคุณอย่างสูง จะต่อคิวซื้อคนแรกเลย

เห็นว่าเป็น Wish list แบบ Consumer ชัดๆ แต่ว่าออกมาหมด ก็ใช่ว่าจะซื้อหมดหรอกนะ ไม่ไหวหรอก แค่ “มันคงสนุกดี” สำหรับหลายๆ กรณี ก็แค่นั้นแหละ

เปลี่ยนที่นี่เป็น Photo Blog ดีมั้ยนะ

หลังจากอยากจะทำ Photo Blog มานาน … แต่ว่าไอ้โปรเจคที่คิดๆ ไว้หลายตัว ก็แป้กๆ จะเป็นส่วนมาก จากหลายปัจจัย (เช่น ไม่ว่างทำ และผู้ช่วยทำก็ยังไม่ว่าง งานเข้ากันวุ่นวาย) ก็เลยคิดว่า งั้นเฉพาะส่วนตัวเอง ก็มาทำที่นี่เลยก็แล้วกัน เพราะว่าไหนๆ ก็ไม่มีที่ไปแล้ว

อืมมมม ต่อไปคงพยายาม post รูปที่ถ่ายๆ ไปจากวันเวลาต่างๆ ลงที่นี่บ้าง จะพยายามให้ได้ “วันละรูป” จาก concept เดิมที่เคยคิดจะทำเว็บๆ หนึ่งเอาไว้เมื่อนานมาแล้ว

แต่ว่าคงจะไม่เริ่มพรุ่งนี้หรือมะรืนนี้หรอกนะ รอหารือกับทีมงานก่อน ว่าจะทำโปรเจค “วันละรูป” ได้มั้ย ถ้าได้ จะรอไปเขียนที่นั่นเลย

ข้อคิดจากฟิสิกส์: F = ma

ขอเขียนอีกเรื่องหนึ่ง เป็นเรื่องที่มีในหัวมานานแล้ว แต่ไม่เคยลงไว้ที่ไหน (เคยพูดบ้าง ตอนกินข้าว นั่งคุยกับเพื่อนๆ) … ก็คือเรื่องกฏนิวตันง่ายๆ เนี่ยแหละ

เราเคยท่องๆ กันมาใช่มั้ย กฏนิวตัน 3 ข้อ คือ F = 0, F = ma, F = -F …. เอ๊ะ ท่องกันถูกหรือเปล่าเนี่ย นี่มันไม่ใช่กฏนิวตันแล้ว นี่มันสูตรไว้ท่องเข้าห้องสอบไปแทนตัวเลข! กฏมันมีอยู่ว่า

  • ในสภาพไม่มีแรงกระทำ วัตถุย่อมรักษาสภาพการเคลื่อนที่
  • เมื่อมีแรงกระทำ F กับวัตถุมวล m วัตถุจะเปลี่ยนสภาพการเคลื่อนที่ด้วยความเร่ง a
  • เมื่อมีแรงกระทำ F จากวัตถุ 1 ไปยัง 2 จะมีแรงปฏิกิริยา -F จาก 2 ไป 1 ขนาดเท่ากัน แต่ทิศตรงกันข้าม

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

วัตถุนั้นๆ ก็ย่อมจะมีมวล มวลมากมวลน้อย ไม่รู้ล่ะ รู้แต่ว่ามีมวล สมมติว่าเป็น m ละกัน

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

จาก F = ma จะได้ว่า a = F/m จะพบว่า อืมมมมม “มวล” มันเป็น “ตัวถ่วง” นี่นา การจะเปลี่ยนแปลงทิศทางการเคลื่อนที่ จะต้องออกแรงมหาศาล เพื่อเอาชนะมวลที่ต้องตัวถ่วงจำนวนมาก ที่แต่ละตัว ก็จะรักษาสภาพการเคลื่อนที่ของมันเอง ใช่หรือไม่?

ว่ากันว่า คนเรากลัวการเปลี่ยนแปลง ไม่ใช่อะไรหรอก เราก็แค่มวลก้อนหนึ่ง ที่พยายามรักษาสภาพการเคลื่อนที่ ใช่หรือไม่?

ทำอย่างไร ในการสร้างความเปลี่ยนแปลง? ถ้าเอาเรื่อง Phase Transition มาคิด เราก็ต้องให้พลังงานมันสินะ แต่ว่าพลังงานที่ต้องใช้ในการสลายพันธะอะไรบางอย่าง มันก็คงต้องมาเอาการอยู่ เพราะว่ามวลหลายตัว ก็เป็นลักษณะ “มวลนิ่ง” มานาน และอย่างที่รู้ๆ กัน ว่ามวลนิ่ง เร่งให้เกิดปฏิกิริยาอะไรก็ยากทั้งนั้น สสารหลายตัวมีสภาพเหมือนกับมวลนิ่ง ไม่จับคู่กับสสารอื่นๆ เพื่อให้เกิดพันธะใหม่ๆ อะไรทั้งสิ้น

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

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

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

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

2009

ไม่ได้เขียน Blog มานาน และคิดว่าคงไม่ได้เขียนอีกนาน ไหนๆ เขียนแล้ว ก็ขอเขียน Year in Review ของตัวเองหน่อยก็แล้วกัน แบบไม่เรียงลำดับนะ คิดอะไรออกก็เขียน และจะให้เวลาตัวเองในการเขียน Blog นี้แค่ 20 นาที เป็นอย่างมาก

  • ปรับตัวเข้ากับการบริหารงานแบบราชการๆ ได้มากขึ้น (แปลว่า ปลงตกมากขึ้น) การปรับแนวคิดให้เป็นแบบ Project-based มากกว่า Function-based หรือ Department-based คงเป็นได้แค่แนวคิด เพราะอย่างไรก็ตาม คนยังคิดแยกฝักแยกฝ่าย มากกว่าการช่วยกันทำงาน
  • งานองค์กร หลายอย่างคิด เริ่ม แต่ไม่เดินหน้า เพราะติดปัจจัยหลายอย่างที่คงไม่เหมาะที่จะเขียนลง Blog และเป็นปัจจัยนอกการควบคุม แต่ส่วนหนึ่งก็เพราะ ความคิดที่ไม่เป็น Project-based หรือ Project-oriented ที่พูดเมื่อกี้น่ะแหละ
  • งานหลายอย่าง ที่เราเคยวาง priority ไว้ลำดับแรกๆ พอทำไปทำมา และหารือไปมากับหลายๆ ฝ่าย (ภายนอกองค์กร) กลับกลายเป็นว่า มีอย่างอื่นที่สำคัญกว่า และผมเห็นด้วย ว่าสำคัญกว่าจริงๆ แต่ตอนแรกเรายังมองไม่เห็นงานพวกนี้มากพอ เข้าใจมันดีพอ ไปๆ มาๆ ก็เลยกลายเป็นว่าต้องจัดลำดับความสำคัญของงานใหม่ งานบางตัวที่เริ่มไว้ ก็ต้องถูกลดความสำคัญลงไป
  • ไม่ว่าคุณจะเป็นใคร จะทำงาน 10 ตัวพร้อมกัน โดยทุกตัวเป็น Top-priority ไม่ได้หรอกครับ ยังไงๆ ก็ต้องตัดให้มันเหลือแค่ 2 ตัว และตัวนึงเป็น A-Must และอีกตัวเป็น Nice-to-have ถึงจะทำงานได้ ถ้าทุกตัว Top-priority หมด แบบนี้ยังไงก็ทำงานไม่ได้ครับ
  • สุดท้ายก็ต้องเรียนรู้ที่จะพบกันระหว่างทางครับ และผมเองก็กำลังหาจุดที่อยู่ “ระหว่างทาง” นั้นอยู่ ว่าเรื่องไหน จุดไหนถึงจะเหมาะสม ซึ่งก็คงไม่มีจุดตายตัว จุดที่เหมาะสมที่สุด ฯลฯ อะไรทำนองนั้นแน่นอน
  • แต่คนในองค์กรหลายคนดีครับ ทำให้ยังมีใจทำงานให้มหาวิทยาลัยอยู่ได้ (ย้ำนะครับ ทำงานให้มหาวิทยาลัย)
  • เป็นปีที่ซวยพอสมควร มีเรื่อง Drama เกิดขึ้นเยอะหน่อย ไหนเลยจะโดนทุบรถ และอื่นๆ อีกพอควร จะสิ้นปีอยู่แล้ว ก็ยังไม่จบเรื่องจบราว
  • ถ่ายรูปน้อยลงมากๆ ในช่วงครึ่งปีหลัง พอคอมพิวเตอร์หายไป รูปที่ชอบๆ ที่คิดว่าถ่ายได้ดีๆ สวยๆ มันหายไปหมดเลย (เพราะว่าไม่ได้ Backup รูปไว้) เลยหมดกำลังใจไปพักนึง และก็ไม่สามารถหาเวลาถ่ายรูปได้เหมือนเดิม (และไม่ค่อยกล้าพกกล้องไว้ในรถ “เผื่อมีโอกาสถ่าย” เหมือนเดิม)
  • แต่ก็ยังดี ที่งานที่ทำเล่นๆ ขำๆ เกิดพอจะได้เรื่องได้ราว ถ้าใครยังไม่ทราบ รบกวนดูที่ i sure, i cheer, i hear, i am petdo!
  • จากข้อเมื่อกี้ ขอบคุณน้องๆ ทีมงาน Urchin Image นะ ที่ทำให้โลกมันน่าอยู่ขึ้นบ้าง สำหรับพี่ ไว้หมดวาระ หมดเวรหมดกรรมในปัจจุบันเมื่อไหร่ พี่จะไปช่วยงานที่บริษัทเต็มตัวนะ หวังว่าคงจะอยู่กันถึงวันนั้น
  • ปลงตกมากขึ้นกับนักศึกษา การศึกษา และการเรียนการสอน
  • แต่อย่างน้อยๆ งานหลายๆ อย่างที่เคยคิดว่าจะเริ่มทำ ก็ได้เริ่มทำแล้ว และก็ทำเรื่อยๆ น่ะแหละ ไม่ได้คิดว่าจะเสร็จเมืิ่อไหร่ ตอนนี้ก็มีหนังสือ Rails ที่สุดท้ายก็คงปล่อยฟรี ไม่เขียนขาย เพราะว่าตัวเองก็อ่านโน่นนี่ฟรีๆ บนเน็ตมาเยอะ ไม่ได้กะจะรวยอะไรกับเรื่องนี้อยู่แล้ว และไม่ชอบ ไม่ถนัด กับการเขียนอะไรแบบเป็นทางการมากเกินไป
  • อ่อ iPhone Developer Camp ที่กรุงเทพ ก็ยังไม่ได้ทำสักที หวังว่าคงจะได้ทำบ้าง หลังปีใหม่ เพราะว่าอยากจะให้มันต่างจาก iPhone Training ที่ไปทำที่ Software Park ภูเก็ตบ้าง
  • มีไอเดียทำ iPhone App เยอะแยะเลย แต่ไม่ทำ ไม่่ใช่ไม่มีเวลา แต่เพราะเครียดจากเรื่องอื่น และหมดแรงจะไปลงกับมัน ตอนนี้อยากกลับไปเป็นเหมือนเมื่อตอนปี 2001-2004 มากๆ ที่ตอนนั้น เวลามีเรื่องเครียด จะเขียน code แก้เครียด … เป็นช่วงที่ productivity สูงที่สุดในชีวิต
  • แต่ว่า Cocoa Touch เป็นเฟรมเวิร์กที่สวยมากนะ ถ้าอยู่กับมันทั้งวันได้โดยไม่ต้องยุ่งกับอย่างอื่นเลยก็ดี อิจฉาหลายๆ คนที่สามารถใช้ชีวิตแบบนั้นได้
  • ดูหนังน้อยลงมากๆ และไม่ได้เขียนรีวิวหนังเลย มีหลายเรื่อง ที่จริงๆ ก็อยากจะเขียนถึง ถึงจะเป็นหนังที่เก่าหน่อย (เช่น Batman: Dark Knight) แต่ว่าไปๆ มาๆ ก็ไม่เขียน ขี้เกียจมั้ง
  • กลับมาเรื่องเรียนเรื่องสอน ปีนี้ภาษาที่ใช้ หวยออกที่ Scheme เป็นหลักและ Ruby (เล็กน้อย) ก็คงจะแทรกๆ พวก Linux อะไรพวกนี้ลงไปบ้าง ตามสมควร คงไม่มีภาษาอะไรที่ syntax มันไม่ยุ่งยาก และ uniform ทั้งภาษา ได้เท่ากับ ​Scheme แล้วมั้ง
  • เรื่องอื่นๆ เกี่ยวกับการเรียนการสอนเหรอ? ย้ำอีกครั้ง ว่าปลงแล้วล่ะครับ
  • Archievement เล็กน้อยส่วนตัว …​ ในที่สุด ก็หาวิธีอธิบาย Higher-Order Function ได้แบบเนียนๆ และเป็นธรรมชาติมากๆ ได้แล้ว
  • โปรเจคเรื่องเกี่ยวกับการถ่ายรูปหลายโปรเจค มีสถานะเป็น “ยังไม่มีการดำเนินการ” หรือ “หยุดกลางคัน” หรือ “ล้มเลิก” เช่น คนเล่นกล้อง วันละรูป ซึ่งตอนแรกจะทำเป็นเว็บแอพพลิเคชัน ส่วน Photographic Project ที่ทำอยู่หลายตัว ก็ค้างไปเฉยๆ เพราะว่ารูปหาย หมดแรงถ่ายใหม่ แต่ตอนนี้ก็เริ่มๆ กลับมาถ่ายบ้างแล้ว ได้รูปถูกใจบ้าง แต่ยังไม่มี Keeper หรือรูปแบบโคตรๆ ได้อารมณ์ หรือ Decisive Moment เท่าไหร่
  • นั่นสิะ Blog ก็แทบไม่ได้เขียน
  • แก่ลงเยอะนะเนี่ย ขับรถเยอะๆ เดินทางไกลๆ แล้วร่างกายงอแง
  • เวลาอากาศเปลี่ยน ก็จะชิงไม่สบายเป็นคนแรกๆ ขององค์กรเลยซะด้วยซ้ำ
  • บ่นน้อยลง ไม่ว่าจะเป็นเรื่องรถติด เน็ตช้า บริการห่วย ฯลฯ เรื่องต่างๆ ที่เคยบ่นเวลาไปที่โน่นที่นี่ ส่วนหนึ่งก็คงเพราะว่าปลง อีกส่วนหนึ่งก็คงเพราะเข้าใจเรื่องต่างๆ มากขึ้น เรื่องโครงสร้างพื้นฐาน เรื่องธรรมชาติของคน เรื่องฯลฯ
  • กินข้าวน้อยลงเยอะ …. ส่วนมากตอนนี้เหลือแค่วันละมื้อ คือ มื้อเย็น ไม่รู้อยู่ได้ยังไงเหมือนกัน แต่มันเกิดอาการเบื่ออาหาร และไม่ค่อยอยากจะกินอะไรเท่าไหร่ ใน 5 วันทำงาน จะกินข้าวเที่ยงกับเค้าอยู่ประมาณวันสองวันเท่านั้นแหละ
  • เรื่องที่ไม่น่าเชื่อว่าจะเกิดกับผมก็คือ …. เดี๋ยวนี้ผมเริ่มต้นสัปดาห์ ด้วยการถามหาวันศุกร์ ซึ่งเมื่อก่อนไม่เคยเป็นแบบนี้เลยในชีวิต เคยแต่อาทิตย์นึงมี 7 วัน ก็ทำงานมันซะเต็มๆ และไม่เคยคิดว่าเหนื่อย ไม่เคยคิดว่าอะไรทั้งนั้น คิดแต่ว่า “สนุก”
  • ถ้ากลับไปเป็นนายตัวเอง เต็มๆ ตัวอีกครั้ง … จะดีขึ้นหรือเปล่านะ?

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


(ภาพจาก iampetdo.com ตอน “ขอ report”)