2

ทำไมผมเลือก Pentax Q ไม่ใช่ Nikon 1

อ.@pruet ถามมาครับ ก่อนอื่นผมบอกเลยนะว่าผมเชียร์ให้ใครซื้อ Pentax Q หรือ Q10 ทั้งนั้นผมว่ามันเป็นทางสายที่น่ากลัวพอตัวสำหรับในประเทศไทย ถึงแม้มีตัวแทนจำหน่ายแล้วแต่ก็ยังใหม่ ผมไม่แน่ใจว่าจะดีไม่ดีอย่างไร

เข้าเรื่องเลยแล้วกัน ว่าทำไมผมไม่เอา Nikon 1 ถ้าเขียนให้เจาะจงเลยก็คือ Nikon J1

  1. กล้องตัวใหญ่ เกือบเท่าระบบ Micro Four-thirds
  2. image sensor เล็กแต่เลนส์ไม่เล็กตามเท่าไหร่ [อ่านเพิ่ม]
  3. เลนส์บางตัว เช่น 10-30mm ไม่มี focus ring ที่ผมใช้บ่อยมาก ๆ
  4. ลองใช้แล้วปรับค่ายาก dial และ ปุ่มต่าง ๆ มีไม่พอและไม่ได้อยู่ในตำแหน่งที่ผมชอบ
  5. เลนส์ Single focal length ที่ในชุดเป็นเลนส์ 10mm แต่ผมอยากได้ 18.5mm
  6. ไม่มี hot shoe
  7. ระบบกันสั่นอยู่ที่เลนส์​ ดังนั้นเวลาเอาเลนส์ manual เก่า ๆ มาใส่มันก็ไม่มีระบบกันสั่น
  8. อันนี้ไม่แน่ใจเท่าไหร่ แต่คิดว่าน่าจะไม่มี focus peaking กับ in-camera raw conversion … แต่อันนี้ผมอาจจะลองไม่ครบเอง

จริง ๆ แล้วในบรรดากล้อง MILC (Mirrorless interchangeable-lens camera) ผมตัด Nikon 1 ออกก่อนเลยครับ ถ้าไม่เอา Pentax ผมคงเลือกพวก Olympus E-PM2 แทน แต่ก็ไม่ได้หมายความว่า Nikon 1 มันไม่ดีนะครับ จากการที่ผมมองอยู่ห่าง ๆ ผมว่ามันน่าจะดีสำหรับคนที่ต้องการถ่ายภาพต่อเนื่องความเร็วสูง ถ่าย Macro โดยใช้เลนส์ Nikkor อะไรพวกนั้น

1

double click เพื่อเลือกคำเดียวใน Firefox

ปกติกด double click ไปบน text แล้วมันควรเลือกคำเดียว แต่ว่า Firefox เวลาเจอภาษาไทยกลับไปเลือกก้อนใหญ่ๆ ผมก็เลยถามไปที่ Thai Linux/FOSS developers <a href="http://thep.blogspot.com/"ป๋าเทพบอกว่าน่าจะเป็น bug 425915

วันนี้ผมก็เลยลองดูสักหน่อย สำหรับกรณีปัญหาที่เกิดจากการเลือกคำด้วย double click ผมคิดว่า code ส่วนที่จะแก้คือ layout/generic/nsSelection.cpp ใน method ชื่อ nsTypedSelection::selectFrames โดยก่อนที่จะเรียก textFrame->SetSelectedRange(startOffset, endOffset, aFlags, mType); ค่า endOffset น่าจะหาโดยใช้ nsIWordBreak::FindWord

แต่ว่า nsIWordBreak ตอนนี้มี implementation แต่ nsSampleWordBreak ที่มี comment ข้างในว่า

// need to call Thai word breaker from here
// we should pass the whole Thai segment to the thai word breaker to
find a shorter answer

แต่ว่าไฟล์นี้ก็สร้างมาตั้งนานแล้วยังไม่มีการแก้ไขอะไร

ผมรู้สึกไม่มั่นใจเท่าไหร่ที่ต้องไปเรียก nsIWordBreak เองใน nsTypedSelection::selectFrames อยากจะถาม ท่านอื่นๆ ว่าน่าจะใช้ทางนี้หรือเปล่า หรือว่า nsIWordBreak ไม่ควรใช้ ถ้าหากควรใช้ ควรจะเอาไปใส่ใน nsTypedSelection::selectFrames หรือเปล่า?

ผมก็ถามไปใน group ด้วย

วันนี้ก็เอาไว้แค่นี้ก่อน ดึงจังหวะรอดู comment นิดนึง

0

Range ใน Javascript

Range นี้ผมใช้ตอนอยากจะดูว่า ข้อความ อะไรที่ถูกเลือกอยู่บ้าง เวลาใช้ก็เขียนแบบนี้

var sel = window.getSelection();
if(sel.rangeCount > 0) 
    var r = sel.getRangeAt(0);

เขียน code แบบนี้ก็จะได้ r ที่เป็น range ออกมา อ่อผมใช้กับ Firefox 3.0.x และ Opera 10.x นะครับ IE 6-8 เข้าใจว่าใช้ไม่ได้ ส่วน chrome กับ safari ก็ยังไม่ได้ศึกษาเท่าไหร่

พอได้ range มา ผมก็รู้ได้ว่า element ไหน โดนเลือกตัวเริ่ม ตัวไหนตัวปิดโดยดูจาก r.startContainer และ r.endContainer ตามลำดับ แต่ว่าใน container อาจจะเป็น Text ก็อาจจะถูกเลือกแค่บางตัวในนั้นก็ต้องมาดู r.startOffset และ r.endOffset อีก

เท่านี้ก็คงพอใช้งานได้แล้ว …