Tags:
Node Thumbnail

Moonlight เป็นโครงการของทีมนักพัฒนา Mono ที่จะพัฒนาระบบทัดเทียมแบบเปิดต้นรหัส (opensource implementation) ที่เข้ากันได้กับรันไทม์ Silverlight  ของไมโครซอฟท์บนแพลตฟอร์มลินุกซ์ เนื่องจากในปัจจุบัน Silverlight สนับสนุนเฉพาะแพลตฟอร์ม Windows และ Mac OS X เท่านั้น ความน่าทึ่งของโครงการนี้อย่างหนึ่งได้แก่ การที่ทีมงานสามารถพัฒนา Moonlight ให้สามารถใช้งานได้ในขั้นต้นได้ในระยะเวลาเพียง 21 วัน !

การติดตั้ง Moonlight ในขณะนี้จำเป็นต้องคอมไพล์จากต้นรหัส และต้องการ Mono 1.2.4 ในขณะที่ Mono ที่มาพร้อมกับ Ubuntu 7.04 นั้นเป็นรุ่น 1.2.3 อย่างไรก็ตามเราไม่จำเป็นต้องคอมไพล์ Mono จากต้นรหัสเองเนื่องจากมีผู้ทำแพกเกจสำหรับ Ubuntu รุ่น 7.04 ไว้ให้แล้ว

ขั้นตอนการติดตั้งที่จะกล่าวถึงต่อไป อาศัยข้อมูลจากหน้าเว็บดังต่อไปนี้ (ประสมกับการลองผิดลองถูกอีกเล็กน้อย)

ขั้นแรก เพิ่มบรรทัดข้างล่างนี้ลงในแฟ้ม

/etc/apt/sources.list deb http://www.viraptor.info/repo feisty-custombackports contrib

จากนั้น อัปเดตทั้งแหล่งแพกแกจและตัวแพกเกจด้วยคำสั่ง

$ sudo aptitude update$ sudo aptitude dist-upgrade

เมื่ออัปเดตแล้วติดตั้งแพกเกจที่จำเป็นเบื้องต้น ได้แก่

ชุดคอมไพล์โปรแกรมและเอสวีเอ็น :

$ sudo aptitude install build-essential subversion

Mono:

$ sudo aptitude install mono libmono-dev mono-gmcs mono-mcs

GTK+:

$ sudo aptitude install libgtk2.0-dev

FFmpeg: (อาจข้ามได้ถ้าต้องการติดตั้งจากต้นรหัส)

$ sudo aptitude install libavformat-dev libswscale-dev

ALSA:

$ sudo aptitude install libasound2-dev

Mozilla: เลือกลงแพกเกจ

$ sudo aptitude install libxul-dev

หรือ

$ sudo aptitude install libnspr-dev libnss-dev firefox-dev

สร้างสารบบสำหรับต้นรหัส

$ mkdir ~/svn

ดาวน์โหลดและคอมไพล์ติดตั้ง FFmpeg (ขั้นตอนนี้อาจข้ามได้หากติดตั้ง libavformat-dev และ libswscale-dev จากแพกเกจ)

$ cd ~/svn && svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg $ cd ~/svn/ffmpeg && ./configure --prefix=/usr/local && make && sudo make install

ดาวน์โหลดและคอมไพล์ติดตั้ง Olive

$ cd ~/svn && svn checkout svn://anonsvn.mono-project.com/source/trunk/olive olive $ cd ~/svn/olive && ./configure --prefix=/usr && make && sudo make install

ขั้นตอนสุดท้าย ดาวน์โหลดและคอมไพล์ติดตั้ง Moonlight และปลั๊กอินสำหรับ Firefox

$ cd ~/svn && svn checkout svn://anonsvn.mono-project.com/source/trunk/moon moon $ cd ~/svn/moon && ./autogen.sh --prefix=/usr && make && sudo make install && make test-plugin

ในระหว่างการคอมไพล์อาจพบว่าคอมไพเลอร์ไม่พบแฟ้มที่จำเป็นสำหรับการคอมไพล์ ให้หาแฟ้มที่ต้องการจากเว็บไซต์ค้นหาแพกเกจที่ http://packages.ubuntu.com/ จากนั้นติดตั้งแพกเกจที่มีแฟ้มดังกล่าว แล้วจึงคอมไพล์ใหม่อีกครั้ง

ทดสอบว่าปลั๊กอินใช้การได้ โดยเปิดยูอาร์แอลต่อไปนี้ด้วย Firefox

http://intertwingly.net/stories/2007/05/06/?icon=caution

จะเห็นการเปรียบเทียบระหว่างการวาดภาพกราฟิกแบบเวกเตอร์โดยใช้ Silverlight/Moonlight เปรียบเทียบกับเอสวีจีซึ่ง Firefox สนับสนุนโดยตรง ดังภาพต่อไปนี้

ml_01

จากนั้นอาจลองเปิดตัวอย่างอื่น ๆ ในหน้า MoonlightShots และหน้า Community Gallery ของ Silverlight เพื่อทดสอบดูด้วย อย่างไรก็ตาม เนื่องจาก Moonlight ยังอยู่ในขั้นต้นของการพัฒนา จึงอาจแสดงผลไม่ตรงตามที่ควรจะเป็นหรือทำให้ Firefox ปิดตัวเองลง (crash) ได้

ml_02

ภาพข้างบนนี้ กรอบสีฟ้าที่เขียนว่า "Visit the LEARN PAGE..." คือ Silverlight ที่ฝังลงในหน้าเว็บ

ความสามารถที่น่าสนใจอย่างหนึ่งของ Moonlight คือการที่เราสามารถเขียนโปรแกรมบน Moonlight ด้วยภาษาที่ .NET/Mono สนับสนุน ซึ่งเมื่อคอมไพล์แล้วสามารถรันบนเดสก์ท็อปได้โดยตรงในทำนองเดียวกับ Dashboard ของ OS X โดยใน Moonlight จะเรียกว่า Desklet (อ่านรายละเอียดได้จากบทความของ Ars Technica) ตัวอย่างของ Desklet จะอยู่ในสารบบ

~/svn/moon/desklet

ซึ่งสามารถคอมไพล์และเรียกใช้ได้ด้วยคำสั่ง mopen ดังตัวอย่างข้างล่างนี้

$ cd ~/svn/moon/desklet/glassyclock && make $ cd ~/svn/moon/desklet && mopen --desklet glassyclock

จะได้ Desklet นาฬิกาแบบเข็มที่คอมไพล์จากสารบบ

~/svn/moon/desklet/glassyclock

การเรียกใช้ Desklet อื่น ๆ ก็เป็นไปในทำนองเดียวกัน

ml_03

เท่าที่ได้ลองทดสอบดู รู้สึกประทับใจในความสามารถของ Moonlight (โดยเฉพาะอย่างยิ่งความง่ายของการพัฒนา Desklet) มากทีเดียว น่าติดตามว่าทิศทางการพัฒนาของโครงการนี้จะเป็นอย่างไรต่อไป

ที่มา - ปรับปรุงเล็กน้อยจากที่บันทึกไว้ในบล็อกส่วนตัวของผู้เขียน

Get latest news from Blognone

Comments

By: sugree
FounderWriterAndroidBlackberry
on 24 July 2007 - 10:32 #27593

บรรดา desklet อย่างนาฬิกากับปฏิทิน ใช้แรมเท่าไหร่ครับ

By: phisite on 24 July 2007 - 12:59 #27604 Reply to:27593

glassyclock ใช้แรมประมาณ 17 MB ส่วน glassycalendar ใช้ประมาณ 30 MB ครับ

(อันที่จริง mopen คือการเรียก mopen.exe ด้วย mono)

By: mk
FounderAndroid
on 24 July 2007 - 16:13 #27618 Reply to:27604
mk's picture

อ่านใน Ars ลิงก์ที่ให้มา บอกว่า mopen เป็นการแก้ปัญหาเรื่องเรียก runtime หลาย instance

By: sugree
FounderWriterAndroidBlackberry
on 24 July 2007 - 17:10 #27626 Reply to:27604

มิใช่น้อย

By: edenfx on 26 July 2007 - 16:48 #27836

ที่จริง EDEN-FX office เราไช้ Ubuntu มานานแล้วค่ะไม่มีปัญหา Microsoft เราไม่ไช้ค่ะ EDEN-FX