My Eclipse Plug-ins list

จดไว้ กันลืม พักนี้ลงใหม่บ่อย

  • Subversion: http://subclipse.tigris.org/update_1.0.x
  • Web Tools: http://download.eclipse.org/webtools/updates/ *ลงไม่ได้ซักที ติด denpendency เต็มไปหมด
  • Ruby: http://rubyeclipse.sf.net/updatesite
  • Python: http://pydev.sf.net/updates
  • PHP: http://download.pipestone.com/eclipse/updates
  • Perl: http://e-p-i-c.sf.net/updates
  • JavaScript: http://www.interaktonline.com/ *ถ้าลง Web Tools ได้ ก็อาจจะไม่ต้องลงตัวนี้

JavaScript editor plug-ins for Eclipse

JavaScript editor plug-ins for Eclipse

แถม: HTML Tidy Eclipse Plug-in (ทำความสะอาดโค้ด HTML, XHTML)

ป.ล. อยากใช้ NetBeans ใจจะขาด แต่ทำไมปลั๊กอิน (ฟรี ๆ) ที่อยากได้มันไม่ค่อยมีฟะ !

so unnecessary code

I’m currently (busy) working with a web UI for one project.
There’s nothing much complicated, just displaying a requested document in a web browser and provide a user a way to highlight some “interesting parts” of the document interactively.
Something like underline all the words with a specified category, or mark a set of words that are related to each other, or hide away sentences that are not very important. No need to calculate anything, all the information are provided in a requested document (XML).

I chose a mix of PHP, XSLT, and JavaScript to do this.
At the first place, I tried it with PHP and JavaScript with no XSLT.
But don’t like the idea to convert XML to HTML by PHP (or whatever language) coding. I just feel that it’s not safe to do so, in terms of long-term maintenance.
So I moved the conversion logic to XSLT, which is quite programming language neutral (depends on the availability of the XSL library).
We may drop the use of PHP at some point, but the conversion is still there in the stylesheet, which can be used by many programming languages.

Hope that’s a right decision.

After using XSLT, I had realized that, in fact, with the XSLT library in JavaScript (like one from Google Code), I can do everything I need by JavaScript.
Anyway, the library seems to be not very cross-browser.
So I just let the PHP do XSLT, also other backoffice stuffs, and let the JavaScript do the user interaction stuffs. Which is, so far, quite nice.

The problem is, I’m not a JavaScript master. My JavaScript code is ‘workable’ but far from ‘elegant’.

After a while, I found myself in a middle of repeated pieces of code.
Most of them are just a code to traverse around my DOM tree,
and all of these traverse codes in every functions are actually using the same logic.

There should be a more elegant way to do this.

I think it should be possible to abstract these following components away from each other:

  • traverse/looping
  • test logic
  • action to perform

something like:

(Note: the following code is just an idea, I’m pretty sure it’s not going to work.)


function process(objects, loop, test, trueAction, falseAction) {
  loop (objects, function (object) {
      if (test(object)) {
        if (trueAction)
          trueAction(object);
      } else {
        if (falseAction)
          falseAction(object);
      }
    });
}

function traverseEveryNode(nodes, perfomer) {
  for (node in nodes) { // just an example, the actual DOM is tree
    performer(node);
  }
}

and then you call:


process(dom, traverseEveryNode, isNoun, markYellow, false);

to paint yellow to all nouns in the given document. Given there’re functions named traverseEveryNode(), isNoun(), and markYellow().

How to do this in JavaScript ?

It seems like there’s something to do with a so-called “closure”.
But I still have no idea what it actually is at the moment — now reading.

If you have any clue, I’m very much appreciated to listen to 😉

ThaiWrap for Opera

คุณ oakyman ไปแจ้งไว้ที่บอร์ดของ Opera ว่า ThaiWrap (JavaScript ตัดคำ) มันใช้ไม่ได้กะโอเปร่านะ

คุณ tarquinwj แก้ให้ใช้ได้แล้ว ที่นี่ (ไฟล์ชื่อ thai.txt เอาไปแก้เป็น thai.js ก่อนใช้) โดยจะนำไปใส่ในเว็บ UserJS.org ต่อไป

thank you

PopThaiKwik

PopThaiKwik เป็น bookmarklet ที่ช่วยให้เรียกใช้บริการเปิดพจนานุกรมอัตโนมัติ Longdo PopThai ได้อย่างรวดเร็วยิ่งขึ้น
(สำหรับผู้ที่ไม่ได้ติดตั้ง Longdo Toolbar เอาไว้ในเบราเซอร์)
คือไม่ต้องลอก url เว็บที่อยากแปลไปแปะในเว็บ PopThai เอง

วิธีเอาไปใช้: ลากลิงก์นี้ PopThaiKwik ไปแปะไว้ที่ bookmark toolbar / favorite ของเว็บเบราเซอร์ แค่นั้นแหละครับ

วิธีใช้: ที่หน้าที่อยากแปล คลิกที่ลิงก์ของ PopThaiKwik (ที่ลากไปแปะไว้ตะกี้), ตัว PopThai จะถูกเรียกให้ทำงานโดยอัตโนมัติ

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

ป.ล.แรก: ไม่รู้จะตั้งชื่ออะไรดี เอาเป็นนี้ละกัน คล้ายๆ ไวไวควิก 😛

ป.ล.ต่อมา: หลังจากแปะลิงก์แล้ว ถ้าชื่อไม่ถูกใจก็เปลี่ยนก็ได้ ตามชอบ
ตัวอย่างชื่ออื่นๆ – PopThai me, AutoDict, เปิดดิกให้หน่อยจิ, ตัวเองงงง, อารียา, เหมียวๆ ฯลฯ

updated 2005.12.21 – ปรับปรุง url เป็น dict.longdo.org

เรื่องน่าอ่าน เกี่ยวกับ JavaScript และ DOM

รวมถึงความไม่เข้ากัน ของเบราเซอร์ต่างค่ายด้วย
มีพูดถึง ActiveX, COM, XPCOM, Mozilla, Internet Explorer

จากบอร์ด LTN devel โดยคุณ Khem