<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:georss="http://www.georss.org/georss" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0"><id>tag:blogger.com,1999:blog-20223988</id><updated>2010-03-26T02:44:48.872+08:00</updated><title type="text">Melopia</title><subtitle type="html" /><link rel="alternate" type="text/html" href="http://melop.sitesled.com/" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://melop.sitesled.com/atom.xml" /><author><name>melop</name><uri>http://www.blogger.com/profile/02907571003906591711</uri><email>noreply@blogger.com</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>9</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/Melopia" /><feedburner:info uri="melopia" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site, subject to copyright and fair use.</feedburner:browserFriendly><entry><id>tag:blogger.com,1999:blog-20223988.post-113965782040217088</id><published>2006-02-11T19:35:00.000+08:00</published><updated>2006-02-11T19:37:00.420+08:00</updated><title type="text">Melop.net launched</title><content type="html">I decided to purchase my own web space. My new weblog is located here: &lt;a href="http://melop.net"&gt;http://melop.net&lt;/a&gt;.

I'll move some posts there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20223988-113965782040217088?l=melop.sitesled.com%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/20223988/113965782040217088/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=20223988&amp;postID=113965782040217088" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20223988/posts/default/113965782040217088" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20223988/posts/default/113965782040217088" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Melopia/~3/nE4VkkN4VaI/melopnet-launched.html" title="Melop.net launched" /><author><name>melop</name><uri>http://www.blogger.com/profile/02907571003906591711</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="03528773432408593064" /></author><thr:total>0</thr:total><feedburner:origLink>http://melop.sitesled.com/2006/02/melopnet-launched.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-20223988.post-113772862275320677</id><published>2006-01-20T11:39:00.000+08:00</published><updated>2006-01-20T12:08:18.333+08:00</updated><title type="text">LYRIC - I don't want to say good bye</title><content type="html">&lt;p&gt;From the original soundtrack of &lt;a href="http://brokebackmountainmovie.com/" rel="external" title="Official Web site"&gt;&lt;cite&gt;Brokeback Moutain.
&lt;/cite&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;(Just inferred from song, not free of errors)&lt;/p&gt;

&lt;div style="text-align: center;margin:10px auto 10px auto"&gt;
&lt;strong&gt;I don't want to say goodbye&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;   

I don't want to say goodbye&lt;br /&gt;Let the stars shine through&lt;br /&gt;I don't want to say goodbye&lt;br /&gt;All I wanna do is being with you&lt;br /&gt;&lt;br /&gt;
Just like the light of the morning&lt;br /&gt;After the darkness has come&lt;br /&gt;Shadow of my love is falling&lt;br /&gt;Oh , place where the sun our way shone&lt;br /&gt;&lt;br /&gt;Don't you know that's where our hearts both belong?&lt;br /&gt;&lt;br /&gt;'Cause I don't want to say goodbye&lt;br /&gt;Let the stars shine through&lt;br /&gt;no I don't want to say goodbye&lt;br /&gt;All I wanna do is being with you&lt;br /&gt;&lt;br /&gt;Together our two hearts thus strong(?)&lt;br /&gt;Don't you know that's where our hearts both belong?&lt;br /&gt;&lt;br /&gt;'cause I don't want to say goodbye&lt;br /&gt;Let the stars shine through&lt;br /&gt;I don't want to say goodbye&lt;br /&gt;All I wanna do is being with you&lt;br /&gt;&lt;br /&gt;All I wanna do is being with you
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20223988-113772862275320677?l=melop.sitesled.com%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/20223988/113772862275320677/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=20223988&amp;postID=113772862275320677" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20223988/posts/default/113772862275320677" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20223988/posts/default/113772862275320677" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Melopia/~3/PVXDlD0Zgq8/lyric-i-dont-want-to-say-good-bye.html" title="LYRIC - I don't want to say good bye" /><author><name>melop</name><uri>http://www.blogger.com/profile/02907571003906591711</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="03528773432408593064" /></author><thr:total>5</thr:total><feedburner:origLink>http://melop.sitesled.com/2006/01/lyric-i-dont-want-to-say-good-bye.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-20223988.post-113707952727881724</id><published>2006-01-12T22:42:00.000+08:00</published><updated>2006-01-12T23:31:14.560+08:00</updated><title type="text">Bad day for birding...</title><content type="html">&lt;p&gt;Wow, my last exam was over this morning!! Don't ask me what was that, dun wanna talk about it anymore.&lt;/p&gt;
&lt;p&gt;So, since I've got plenty of time to kill now, I decided to go around the campus with my friend to do some birding and try to take some photos.&lt;/p&gt;
&lt;p&gt;We've got tons of Silvereyes(&lt;em&gt;Zosterops japonicus&lt;/em&gt;) here, but those little guyz are so hard to capture 'cause they keep moving in trees all the time. So one of my goal today is to take a pic of this sp. Another target today is the White-breasted Kingfisher, I saw it many times resting on the "island" in the pool, so if I'm lucky, I may get into it.&lt;/p&gt;
&lt;p&gt;I can't wait till afternoon, and got out at noon. But I just had no luck. First I saw an &lt;em&gt;Embriza&lt;/em&gt;, I think it was probably a &lt;em&gt;E. chrysophrys&lt;/em&gt;, and I took many pics of it. Unluckily, I didn't realize my camera's shutter was set to 1/8000 sec. before it flew away. I was totally mad!!&lt;/p&gt;
&lt;p&gt;After that, I didn't see any special spp. for today. However, after some try, I finnaly took a clear pic of a Silvereye.&lt;/p&gt;
&lt;p&gt;And about manual focus. Since I figured out how to use it, I've been trying to practise this skill. But it doesn't turn out very successful. I missed some great chance of a pic that could've been wonderful. And, there was nothing on the small island.&lt;/p&gt;
&lt;p&gt;Anyway, here's the list for today:&lt;/p&gt;

&lt;dl class="birding_info"&gt;
  &lt;dt&gt;Place&lt;/dt&gt;
  &lt;dd&gt;Campus of ZSU. Zhuhai, Guangdong, China&lt;/dd&gt;
  &lt;dt&gt;Time&lt;/dt&gt;

  &lt;dd&gt;2006-01-12 13:00 - 17:10&lt;/dd&gt;
  &lt;dt&gt;Total Species&lt;/dt&gt;
  &lt;dd&gt;11&lt;/dd&gt;
  &lt;dt&gt;Personal new record&lt;/dt&gt;
  &lt;dd&gt;1&lt;/dd&gt;
&lt;/dl&gt;

&lt;table&gt;
  &lt;thead&gt;&lt;tr&gt;&lt;th&gt;Scientific Name&lt;/th&gt;&lt;th&gt;Chinese Name&lt;/th&gt;&lt;th&gt;Count&lt;/th&gt;&lt;th&gt;Habitat&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
  &lt;tbody&gt;
   &lt;tr&gt;&lt;td class="latin"&gt;Emberiza (chrysophrys?)&lt;/td&gt;&lt;td&gt;黄眉鹀&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;Bush (&lt;em&gt;Accacia sinuata&lt;/em&gt;)&lt;/td&gt;&lt;/tr&gt;

   &lt;tr&gt;&lt;td class="latin"&gt;Sturnus nigricollis&lt;/td&gt;&lt;td&gt;黑领椋鸟&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;Basketball court&lt;/td&gt;&lt;/tr&gt;
   &lt;tr&gt;&lt;td class="latin"&gt;Motacilla alba&lt;/td&gt;&lt;td&gt;白鹡鸰&lt;/td&gt;&lt;td&gt;Everywhere&lt;/td&gt;&lt;td&gt;Everywhere&lt;/td&gt;&lt;/tr&gt;
   &lt;tr&gt;&lt;td class="latin personal_new"&gt;Prinia inornata&lt;/td&gt;&lt;td&gt;纯色鹪莺&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;Low bush&lt;/td&gt;&lt;/tr&gt;

   &lt;tr&gt;&lt;td class="latin"&gt;Hirundo daurica&lt;/td&gt;&lt;td&gt;金腰燕&lt;/td&gt;&lt;td&gt;Many, 10-20 in one flock&lt;/td&gt;&lt;td&gt;Sky, near water&lt;/td&gt;&lt;/tr&gt;
   &lt;tr&gt;&lt;td class="latin"&gt;Hirundo sp.&lt;/td&gt;&lt;td&gt;燕&lt;/td&gt;&lt;td&gt;Smaller and than &lt;em&gt;H. daurica&lt;/em&gt;, unidentified&lt;/td&gt;&lt;td&gt;Sky, near water&lt;/td&gt;&lt;/tr&gt;
   &lt;tr&gt;&lt;td class="latin"&gt;Pycnonotus aurigaster)&lt;/td&gt;&lt;td&gt;白喉红臀鹎&lt;/td&gt;&lt;td&gt;Many&lt;/td&gt;&lt;td&gt;Many places&lt;/td&gt;&lt;/tr&gt;
   &lt;tr&gt;&lt;td class="latin"&gt;P. sinensis&lt;/td&gt;&lt;td&gt;白头鹎&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;Many places&lt;/td&gt;&lt;/tr&gt;
   &lt;tr&gt;&lt;td class="latin"&gt;Zosterops japonicus&lt;/td&gt;&lt;td&gt;暗绿绣眼鸟&lt;/td&gt;&lt;td&gt;Many, 4-5 a small flock&lt;/td&gt;&lt;td&gt;In trees by road side(&lt;em&gt;Ficus microcarpa&lt;/em&gt;, &lt;em&gt;Ormosia pinata&lt;/em&gt;)&lt;/td&gt;&lt;/tr&gt;

   &lt;tr&gt;&lt;td class="latin"&gt;Tringa ochropus&lt;/td&gt;&lt;td&gt;白腰草鹬&lt;/td&gt;&lt;td&gt;1 pair&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
   &lt;tr&gt;&lt;td class="latin"&gt;Copsychus saularis&lt;/td&gt;&lt;td&gt;鹊鸲&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;"Suiyue lake"&lt;/td&gt;&lt;/tr&gt;
  &lt;tbody&gt;
&lt;/table&gt;


&lt;h2&gt;Photos from today&lt;/h2&gt;
   
   &lt;dl class="img_list"&gt;
    &lt;div&gt;
    &lt;dt class="latin"&gt;Motacilla alba leucopsis&lt;/dt&gt;
    &lt;dd&gt;&lt;a href="http://www.flickr.com/photos/melop/85586949/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/36/85586949_4c4e75b293_o.jpg" width="240" height="169" alt="Motacilla alba leucopsis" /&gt;&lt;/a&gt;&lt;/dd&gt;
    &lt;/div&gt;
    &lt;div&gt;
    &lt;dt class="latin"&gt;Zosterops japonicus &lt;/dt&gt;
    &lt;dd&gt;&lt;a href="http://www.flickr.com/photos/melop/85578110/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/6/85578110_55d7e34bd3_m.jpg" width="240" height="175" alt="Zosterops japonicus" /&gt;&lt;/a&gt;&lt;/dd&gt;
    &lt;/div&gt;
    &lt;div&gt;
    &lt;dt class="latin"&gt;Pycnonotus sinensis&lt;/dt&gt;
    &lt;dd&gt;&lt;a href="http://www.flickr.com/photos/melop/85578111/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/6/85578111_db56d2ef9f_m.jpg" width="240" height="191" alt="Pycnonotus sinensis" /&gt;&lt;/a&gt;&lt;/dd&gt;&lt;/div&gt;&lt;div&gt;
    &lt;dt class="latin"&gt;P. aurigaster&lt;/dt&gt;
    &lt;dd&gt;&lt;a href="http://www.flickr.com/photos/melop/85578115/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/9/85578115_cc3950904f_m.jpg" width="240" height="184" alt="Pycnonotus aurigaster" /&gt;&lt;/a&gt;&lt;/dd&gt;
  &lt;/div&gt;
   &lt;/dl&gt;
&lt;br style="clear:both" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20223988-113707952727881724?l=melop.sitesled.com%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/20223988/113707952727881724/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=20223988&amp;postID=113707952727881724" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20223988/posts/default/113707952727881724" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20223988/posts/default/113707952727881724" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Melopia/~3/XZijsl_ATJA/bad-day-for-birding.html" title="Bad day for birding..." /><author><name>melop</name><uri>http://www.blogger.com/profile/02907571003906591711</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="03528773432408593064" /></author><thr:total>0</thr:total><feedburner:origLink>http://melop.sitesled.com/2006/01/bad-day-for-birding.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-20223988.post-113647324201025443</id><published>2006-01-05T22:51:00.000+08:00</published><updated>2006-01-06T11:20:23.313+08:00</updated><title type="text">Latin note: Lesson XXI</title><content type="html">&lt;h2&gt;Text: Niobe et leberi sui (NIOBE AND HER CHILDREN)&lt;/h2&gt;
&lt;p&gt;&lt;a href="/la/textxxi/p1.mp3" class="latin sound_clip"&gt;Apollō et Diāna erant liberī Lātōnæ. Iīs Thēbānī sacra crēbra parābant. Oppidānī amābant Lātōnam et līberōs eius. Id superbæ rēginæ erat molestum. “Cūr,” inquit, “Lātōnæ et liberis sacra parātis? Duōs liberōs habet Lātōna; quattuordecim habeō ego. Ubi sunt mea sacra?”&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/la/textxxi/p2.mp3" class="latin sound_clip"&gt;Lātona iīs verbīs irāta liberōs suōs vocat. Ad eam volant Apollō Diānaque et sagittīs suīs miserōs līberōs rēginæ superbæ dēlent.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/la/textxxi/p3.mp3" class="latin sound_clip"&gt;Niobē, nūper læta, nunc misera, sedet apud līberōs interfectōs et cum perpetuis lacrimīs eōs dēsīdērat.&lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;My translation (full with errors)&lt;/h2&gt;
&lt;p&gt;Apollo and Diana are children of Latona. They often prepared rite to that Theban. (The Thabans often prepare sacrifices for them) The townsmen loved Latona and her children. It is the proud of the queen that is troublesome. (It is the troublesome to the proud queen.)&lt;/p&gt;
&lt;p&gt;“Why”, she asks, “do you prepare sacrifice for Latona and (his) children?” Latona has 2 children; I have 14! Where’re my rites?”&lt;/p&gt;
&lt;p&gt;Latona, angry with those words, calls her children.&lt;/p&gt;
&lt;p&gt;Apollo and Diana fly to them and kill the proud queen’s poor children with their arrows.
Niobe, used to be happy, now sad, sits among the slain children and long for them with perpetual tears.&lt;/p&gt;

&lt;h2&gt;Correct translation!&lt;/h2&gt;

&lt;p&gt;Apollo and Diana were children of Latona. The Thebans prepared frequent sacrifices to/for them. The townspeople loved Latona and her children. This was troublesome to the proud queen. “Why?” said the queen, “are you preparing sacrifices for Latona and her children?” Latona has two children; I have fourteen. Where are my sacrifices?” Latona, angry because of these words, calls her children. Apollo and Diana fly to her, and destroy the wretched children of the proud queen with their arrows. Niobe, recently happy, now wretched, sits among her slain children and longs for them with perpetual tears.&lt;/p&gt;

&lt;h2&gt;Errata Mea&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;Latona is a goddess, I should say "she" not "he". What a shame. :(&lt;/li&gt;
  &lt;li&gt;&lt;em class="latin"&gt;Thēbānī&lt;/em&gt; is the nominative plural form of &lt;em class="latin"&gt;Thēbānus&lt;/em&gt; (the Thebans), I mistook the whole sentence and the subject-object.&lt;/li&gt;
  &lt;li&gt;A similar error occurs later in the sentence &lt;em class="latin"&gt;"Id superbae rēginae erat molestum. "&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And there're still some other minor mistakes, I must work harder now...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20223988-113647324201025443?l=melop.sitesled.com%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/20223988/113647324201025443/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=20223988&amp;postID=113647324201025443" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20223988/posts/default/113647324201025443" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20223988/posts/default/113647324201025443" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Melopia/~3/jrDPJd0DYKg/latin-note-lesson-xxi.html" title="Latin note: Lesson XXI" /><author><name>melop</name><uri>http://www.blogger.com/profile/02907571003906591711</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="03528773432408593064" /></author><thr:total>0</thr:total><feedburner:origLink>http://melop.sitesled.com/2006/01/latin-note-lesson-xxi.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-20223988.post-113612070809864733</id><published>2006-01-01T19:16:00.000+08:00</published><updated>2006-01-01T21:37:17.063+08:00</updated><title type="text">First birding in the new year</title><content type="html">&lt;p&gt;Today I went birding with my parents , cousin and grandma. They don't actually birding, but just spending some time with me. lol.&lt;/p&gt;

&lt;dl class="birding_info"&gt;
  &lt;dt&gt;Place&lt;/dt&gt;
  &lt;dd&gt;Qi'ao island, near my campus. Zhuhai, Guangdong, China&lt;/dd&gt;
  &lt;dt&gt;Time&lt;/dt&gt;
  &lt;dd&gt;2006-01-01 10:00am - 2:00 pm&lt;/dd&gt;
  &lt;dt&gt;Total Species&lt;/dt&gt;
  &lt;dd&gt;16&lt;/dd&gt;
  &lt;dt&gt;Personal new record&lt;/dt&gt;
  &lt;dd&gt;1&lt;/dd&gt;
&lt;/dl&gt;

&lt;p&gt;Qi'ao island is a small island in Zhuhai, it's has a conservative mangrove which attracts lots of birds (waders, herons etc.). &lt;/p&gt;

&lt;p&gt;Today I saw the following spp .: &lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;&lt;tr&gt;&lt;th&gt;Scientific Name&lt;/th&gt;&lt;th&gt;Chinese Name&lt;/th&gt;&lt;th&gt;Count&lt;/th&gt;&lt;th&gt;Habitat&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
  &lt;tbody&gt;
   &lt;tr&gt;&lt;td class="latin"&gt;Acridotheres cristatellus&lt;/td&gt;&lt;td&gt;八哥&lt;/td&gt;&lt;td&gt;Many, 10 in flock&lt;/td&gt;&lt;td&gt;Open, near water&lt;/td&gt;&lt;/tr&gt;
   &lt;tr&gt;&lt;td class="latin"&gt;Sturnus sinensis&lt;/td&gt;&lt;td&gt;灰背椋鸟&lt;/td&gt;&lt;td&gt;Many&lt;/td&gt;&lt;td&gt;Open, near water&lt;/td&gt;&lt;/tr&gt;
   &lt;tr&gt;&lt;td class="latin"&gt;Motacilla alba&lt;/td&gt;&lt;td&gt;白鹡鸰&lt;/td&gt;&lt;td&gt;Several, seen 3&lt;/td&gt;&lt;td&gt;Everywhere&lt;/td&gt;&lt;/tr&gt;
   &lt;tr&gt;&lt;td class="latin personal_new"&gt;Cisticola exilis&lt;/td&gt;&lt;td&gt;黄头扇尾莺&lt;/td&gt;&lt;td&gt;One&lt;/td&gt;&lt;td&gt;Shrub, near water&lt;/td&gt;&lt;/tr&gt;
   &lt;tr&gt;&lt;td class="latin"&gt;Egretta garzetta&lt;/td&gt;&lt;td&gt;白鹭&lt;/td&gt;&lt;td&gt;Many, 10-20 in one flock and some flying individuals&lt;/td&gt;&lt;td&gt;Mangrove, water&lt;/td&gt;&lt;/tr&gt;
   &lt;tr&gt;&lt;td class="latin"&gt;Egretta alba&lt;/td&gt;&lt;td&gt;大白鹭&lt;/td&gt;&lt;td&gt;About 1/10 of &lt;em&gt;E. garzetta&lt;/em&gt;&lt;/td&gt;&lt;td&gt;Mangrove, water&lt;/td&gt;&lt;/tr&gt;
   &lt;tr&gt;&lt;td class="latin"&gt;Egretta intermedia&lt;/td&gt;&lt;td&gt;中白鹭&lt;/td&gt;&lt;td&gt;About 1/10 of &lt;em&gt;E. garzetta&lt;/em&gt;&lt;/td&gt;&lt;td&gt;Mangrove, water&lt;/td&gt;&lt;/tr&gt;
   &lt;tr&gt;&lt;td class="latin"&gt;Pycnonotus sp. (P. aurigaster/P. sinensis)&lt;/td&gt;&lt;td&gt;鹎&lt;/td&gt;&lt;td&gt;Many&lt;/td&gt;&lt;td&gt;Mountain foot&lt;/td&gt;&lt;/tr&gt;
   &lt;tr&gt;&lt;td class="latin"&gt;Tachybaptus ruficolis&lt;/td&gt;&lt;td&gt;小&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;Water&lt;/td&gt;&lt;/tr&gt;
   &lt;tr&gt;&lt;td class="latin"&gt;Anthus richardi?&lt;/td&gt;&lt;td&gt;理查德鷚&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;Dry open ground&lt;/td&gt;&lt;/tr&gt;
   &lt;tr&gt;&lt;td class="latin"&gt;Apus affinis&lt;/td&gt;&lt;td&gt;小白腰雨燕&lt;/td&gt;&lt;td&gt;6-10&lt;/td&gt;&lt;td&gt;Flying in the sky&lt;/td&gt;&lt;/tr&gt;
   &lt;tr&gt;&lt;td class="latin"&gt;Milvus lineatus&lt;/td&gt;&lt;td&gt;黑耳鸢&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;Flying in the sky&lt;/td&gt;&lt;/tr&gt;
   &lt;tr&gt;&lt;td class="latin"&gt;Buteo buteo&lt;/td&gt;&lt;td&gt;普通鵟&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;Flying in the sky&lt;/td&gt;&lt;/tr&gt;
   &lt;tr&gt;&lt;td class="latin"&gt;Halcyon smyrnensis&lt;/td&gt;&lt;td&gt;白胸翡翠&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;Near water&lt;/td&gt;&lt;/tr&gt;
   &lt;tr&gt;&lt;td class="latin"&gt;Charadrius dubius&lt;/td&gt;&lt;td&gt;金眶鸻&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;Long grass&lt;/td&gt;&lt;/tr&gt;
   &lt;tr&gt;&lt;td class="latin"&gt;Streptopelia sinensis&lt;/td&gt;&lt;td&gt;珠颈斑鸠&lt;/td&gt;&lt;td&gt;2, and hear some&lt;/td&gt;&lt;td&gt;Flying pass&lt;/td&gt;&lt;/tr&gt;
  &lt;tbody&gt;
&lt;/table&gt;

&lt;h2&gt;Photos from today&lt;/h2&gt;
   
   &lt;dl class="img_list"&gt;
    &lt;div&gt;
    &lt;dt class="latin"&gt;Cisticola exilis&lt;/dt&gt;
    &lt;dd&gt;&lt;a href="http://www.flickr.com/photos/melop/80112552/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/39/80112552_697ab1b610_m.jpg" width="240" height="183" alt="Cisticola exilis" /&gt;&lt;/a&gt;&lt;/dd&gt;
    &lt;/div&gt;
    &lt;div&gt;

    &lt;dt class="latin"&gt;Egretta alba&lt;/dt&gt;
    &lt;dd&gt;&lt;a href="http://www.flickr.com/photos/melop/80112551/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/42/80112551_40edd5c825_m.jpg" width="240" height="186" alt="Egretta alba" /&gt;&lt;/a&gt;&lt;/dd&gt;
  &lt;/div&gt;&lt;div&gt;

    &lt;dt class="latin"&gt;Egretta garzetta &lt;/dt&gt;
    &lt;dd&gt;&lt;a href="http://www.flickr.com/photos/melop/80112550/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/37/80112550_8ca3eb5a9d_m.jpg" width="240" height="186" alt="Egretta garzetta" /&gt;&lt;/a&gt;&lt;/dd&gt;


    &lt;/div&gt;
   &lt;/dl&gt;
&lt;br style="clear:both" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20223988-113612070809864733?l=melop.sitesled.com%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/20223988/113612070809864733/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=20223988&amp;postID=113612070809864733" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20223988/posts/default/113612070809864733" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20223988/posts/default/113612070809864733" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Melopia/~3/Uy05cqKUt1Y/first-birding-in-new-year.html" title="First birding in the new year" /><author><name>melop</name><uri>http://www.blogger.com/profile/02907571003906591711</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="03528773432408593064" /></author><thr:total>1</thr:total><feedburner:origLink>http://melop.sitesled.com/2006/01/first-birding-in-new-year.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-20223988.post-113594819001212177</id><published>2005-12-30T20:38:00.000+08:00</published><updated>2005-12-30T21:09:50.036+08:00</updated><title type="text">Opera 8.51 has an overlapping bug?</title><content type="html">&lt;p&gt;Today when I just finished the &lt;a href="/about.html"&gt;about page&lt;/a&gt; and start testing it in various browsers, I found some problem when I try to render the page in Opera 8.51. That's the part of code that causes the problem, where I try to add an image list.&lt;/p&gt;

&lt;code&gt;
lt;dl class=&amp;quot;img_list&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;&amp;lt;a href=&amp;quot;/examples/SoundClip/names/Acentrogobius_caninus.mp3&amp;quot; class=&amp;quot;latin sound_clip&amp;quot;&amp;gt;Acentrogobius caninus&amp;lt;/a&amp;gt;&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&amp;lt;a href=&amp;quot;http://www.flickr.com/photos/melop/65387663/&amp;quot; title=&amp;quot;Acentrogobius caninus&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;img src=&amp;quot;http://static.flickr.com/34/65387663_814411604e_m.jpg&amp;quot; alt=&amp;quot;image of Acentrogobius caninus&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/a&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br/&gt;&lt;br /&gt;
 &amp;lt;dt&amp;gt;&amp;lt;a href=&amp;quot;/examples/SoundClip/names/Tridentiger_trigonocephalus.mp3&amp;quot; class=&amp;quot;latin sound_clip&amp;quot;&amp;gt;Tridentiger trigonocephalus&amp;lt;/a&amp;gt;&amp;lt;/dt&amp;gt;&lt;br /&gt;
  &amp;lt;dd&amp;gt;&amp;lt;a href=&amp;quot;http://www.flickr.com/photos/melop/65461169/&amp;quot; title=&amp;quot;Tridentiger trigonocephalus&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;img src=&amp;quot;http://static.flickr.com/31/65461169_d9282679a4_m.jpg&amp;quot; alt=&amp;quot;Tridentiger trigonocephalus&amp;quot;  /&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;/dd&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/dl&amp;gt;
&lt;/code&gt;

&lt;p&gt;And the css code as follows:&lt;/p&gt;

&lt;code&gt;
dl.img_list {&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;dl.img_list div, dl.img_list div dd {&lt;br /&gt;
  float:left;&lt;br /&gt;
  }&lt;br /&gt;&lt;br /&gt;dl.img_list div {&lt;br /&gt;
  margin:5px 5px 5px 0;&lt;br /&gt;
  }&lt;br /&gt;&lt;br /&gt;dl.img_list div dt {&lt;br /&gt;
  font-weight:bold;&lt;br /&gt;
  padding:0 0 4px 2px;&lt;br /&gt;
  border-top:1px dotted #069;&lt;br /&gt;
  }&lt;br /&gt;&lt;br /&gt;dl.img_list dd {&lt;br /&gt;
  border:2px solid #000;&lt;br /&gt;
  padding:5px;&lt;br /&gt;
  background:#fff;&lt;br /&gt;
  }
&lt;/code&gt;

&lt;p&gt;With most modern browsers, ff and Internet Explorer display the image lists correctly. Opera 8.51 works well at first, but once the &lt;a href="http://melop.sitesled.com/2005/12/playing-short-sound-clips-with-xhtml_29.html"&gt;Sound clip&lt;/a&gt; script executes, the two images (the &amp;lt;dd&amp;gt; element) overlapps. But when resize the window, it returns to normal.&lt;/p&gt;

&lt;p&gt;Then I load the page in previous versions of Opera. And found it to be an old problem. In Opera 7.0, you don't have to execute the script to see the overlap. This may due to the miscaculating of the width of the div from it's non-float child (that is, the dt element).&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20223988-113594819001212177?l=melop.sitesled.com%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/20223988/113594819001212177/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=20223988&amp;postID=113594819001212177" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20223988/posts/default/113594819001212177" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20223988/posts/default/113594819001212177" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Melopia/~3/qo478ABZ2QQ/opera-851-has-overlapping-bug.html" title="Opera 8.51 has an overlapping bug?" /><author><name>melop</name><uri>http://www.blogger.com/profile/02907571003906591711</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="03528773432408593064" /></author><thr:total>0</thr:total><feedburner:origLink>http://melop.sitesled.com/2005/12/opera-851-has-overlapping-bug.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-20223988.post-113586005531700818</id><published>2005-12-29T20:34:00.001+08:00</published><updated>2005-12-29T21:26:53.813+08:00</updated><title type="text">Playing short sound clips with XHTML and Javascript</title><content type="html">&lt;p&gt;&lt;img src="/examples/SoundClip/preview.jpg" alt="Preview of final" class="left post_img" /&gt;How often do you need to play a short sound clip on a webpage? I recently come across the problem. It sounds like easy isn't it? In the old days we have the &amp;lt;bgsound&amp;gt; tag, and &amp;lt;embed&amp;gt;, now we have some choices of popular player plugins like WMP, Quicktime, Real Player and even Flash player can do it. So why bother? Well, sure it's not hard to acheive the effect , I mean playing sound clips, but how can I make my markup neat and clean? It's essential because I need to insert lots of clips on a webpage, and I want the user could play it at once as well as download it later. To begin, you may want to see the &lt;a href="/examples/SoundClip/autoFormat.html" rel="external"&gt;final example&lt;/a&gt; at once, or &lt;a href="/examples/SoundClip/soundclip.zip"&gt;download the zip pakage&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;The best thing that XHTML taught me is that I need to be meaningful(or semantical), that is, the attributes should really &lt;em&gt;mean&lt;/em&gt; something instead of telling the browser how to render the content (as we all known, that's Mr. CSS's business). The [class] attribute is what I'm going to use. I can't imagine why this cute attribute is just used by css rules only, isn't it intended for &lt;strong&gt;class&lt;/strong&gt;ification? Actually, lots of great minds have already thought about it. The use of &lt;strong&gt;class&lt;/strong&gt;ification is limitless (some guyz even make &lt;a href="http://kurafire.net/projects/face" rel="external"&gt;animations&lt;/a&gt; out of it!) .&lt;/p&gt;
&lt;p&gt;Here's the markup I'm going to deal with:&lt;/p&gt;
&lt;code&gt;&amp;lt;a href=&amp;quot;names/Acanthogobius_flavimanus.mp3&amp;quot; class=&amp;quot;latin sound_clip&amp;quot;&amp;gt;Acanthogobius flavimanus&amp;lt;/a&amp;gt; &lt;/code&gt;
&lt;p&gt;Fairly simple, isn't it? Any human could understand its meaning. Now if you load it in a web browser, a normal link will appear and when clicked on it, the browser will show a download dialog to the user. &lt;/p&gt;
&lt;p&gt;Ouch, don't throw eggs at me, stop... not now..;(. I haven't begin yet. OK, next, I need to prepare an audio player to handle the mp3 files I'm going play. Since Flash is said to be &amp;quot;installed on nearly 98% of the world's computers&amp;quot;, let's make an audio player out of Flash. Though I call it a &amp;quot;player&amp;quot;, it just have two most simple functions: play and stop, remember we are playing &lt;em&gt;short clips&lt;/em&gt; ? &lt;/p&gt;
&lt;p&gt;Since Flash 5 (or earlier?), Macromedia introduces an actionscript object called &amp;quot;&lt;em&gt;Sound&lt;/em&gt;&amp;quot; , which allows the player to load external mp3 files and play it. That's just what I need! You can load and play a file like this (example in Actionscript 2): &lt;/p&gt;
&lt;code&gt;var sndTrack:Sound = new Sound();&lt;br /&gt;
  &lt;br /&gt;
  //Load sound:&lt;br /&gt;
  sndTrack.onLoad = function(bSuccess:Boolean) { //When the file loaded &lt;br /&gt;
if (!bSuccess) {
// Failed to load sound&lt;br /&gt;
} else { // Success! &lt;br /&gt; 
this.start();//Play sound
&lt;br /&gt;
}&lt;br /&gt;
};&lt;br /&gt;
sndTrack.loadSound(&amp;quot;SomeSound.mp3&amp;quot; , false); // begin loading the sound &lt;/code&gt;
&lt;p&gt;But wait, you may say, how will I know which file is going to  play? That would be easy to use the url parameter! For example, if I &amp;quot;query&amp;quot; the swf file like this: player.swf?file=abc.mp3, then actionscript will know a variable named &amp;quot;file&amp;quot; is &amp;quot;abc.mp3&amp;quot;, and this &amp;quot;query string&amp;quot; can be generated by javascript later. OK, problem solved! Now I'm getting to create this player, first, drag two buttons (Pause and Play) on to the stage(size 16 x 16 px), then give them instance names &amp;quot;&lt;em&gt;btn_Play&lt;/em&gt;&amp;quot; and &amp;quot;&lt;em&gt;btn_Pause&lt;/em&gt;&amp;quot; so that I can control them using AS. Then create another layer named &amp;quot;&lt;em&gt;as&lt;/em&gt;&amp;quot; which the scripts goes. Here's the actionscript code for the layer:&lt;/p&gt;
&lt;p&gt;
&lt;code&gt;  var sFile:String = (file == undefined) ? null : file; // Detect the parameter passed by external js &lt;br /&gt;
  var sndTrack:Sound = new Sound(); // Create the sound object &lt;br /&gt;
  &lt;br /&gt;
  //Set the onLoad handler&lt;/code&gt;&lt;code&gt;&lt;br /&gt;
  sndTrack.onLoad = function(bSuccess:Boolean) {&lt;br /&gt;
  &lt;br /&gt;
  if (!bSuccess) {&lt;br /&gt;
  // Failed to load sound&lt;br /&gt;
  SetUIState(&amp;quot;failed&amp;quot;);&lt;br /&gt;
  } else {&lt;br /&gt;
  SetUIState(&amp;quot;stopped&amp;quot;);&lt;br /&gt;
  //this.setVolume(60);&lt;br /&gt;
  }&lt;br /&gt;
  };&lt;br /&gt;
  &lt;br /&gt;
  sndTrack.onSoundComplete = function() {
  &lt;br /&gt;
  SetUIState(&amp;quot;stopped&amp;quot;); // When sound ends, reset the buttons &lt;br /&gt;
  };&lt;br /&gt;
  &lt;br /&gt;
  btn_Play.onRelease = function() { // When &amp;quot;Play&amp;quot; button clicked 
  &lt;br /&gt;
  SetUIState(&amp;quot;playing&amp;quot;); // Set button states &lt;br /&gt;
  sndTrack.start(0, 1); // And play the file &lt;br /&gt;
  };&lt;br /&gt;
  &lt;br /&gt;
  btn_Stop.onRelease = function() { // When &amp;quot;Stop&amp;quot; button clicked &lt;br /&gt;
  sndTrack.stop(); // Stop playing &lt;br /&gt;
  SetUIState(&amp;quot;stopped&amp;quot;); // Reset the buttons &lt;br /&gt;
  };&lt;br /&gt;
  &lt;/code&gt;&lt;code&gt;&lt;br /&gt;
  function SetUIState(sState:String) { // The function use to handle the buttons states &lt;br /&gt;
  if (sState == &amp;quot;loading&amp;quot;) {&lt;br /&gt;
  btn_Play._visible = false;&lt;br /&gt;
  btn_Stop._visible = false;&lt;br /&gt;
  }&lt;br /&gt;
  if (sState == &amp;quot;failed&amp;quot;) {&lt;br /&gt;
  btn_Play._visible = true;&lt;br /&gt;
  btn_Stop._visible = false;&lt;br /&gt;
  btn_Play.enabled = false;&lt;br /&gt;
  }&lt;br /&gt;
  if (sState == &amp;quot;playing&amp;quot;) {&lt;br /&gt;
  btn_Play._visible = false;&lt;br /&gt;
  btn_Stop._visible = true;&lt;br /&gt;
  }&lt;br /&gt;
  if (sState == &amp;quot;stopped&amp;quot;) {&lt;br /&gt;
  btn_Play._visible = true;&lt;br /&gt;
  btn_Stop._visible = false;&lt;br /&gt;
  trace(&amp;quot;set state: stopped, btn:&amp;quot;+btn_Play.onRelease);&lt;br /&gt;
  }&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  //End of preperation! &lt;br /&gt;
  //Begin Load sound&lt;br /&gt;
  &lt;br /&gt;
  SetUIState(&amp;quot;loading&amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
  if (sFile != null) {&lt;br /&gt;
  sndTrack.loadSound(sFile, false);&lt;br /&gt;
  // Try to load sound;&lt;br /&gt;
  } else {&lt;br /&gt;
  SetUIState(&amp;quot;failed&amp;quot;);&lt;br /&gt;
  // No sound file specified;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;/code&gt;
  &lt;p&gt;
  Publish the SWF file and the player's done! So far, the XHTML page looks the same, because we haven't &amp;quot;connect&amp;quot; the player with the markup yet. Now that's what I'm going to do. All I need to do is to enumerate all the &amp;lt;a&amp;gt; tags with the class name &amp;quot;sound_clip&amp;quot;, and insert this player before the link. Note that I haven't used the standard DOM methods since it's more complex, instead&lt;em&gt; innerHTML&lt;/em&gt; is used for manipulating the markup. Here's the Javascript code:&lt;/p&gt;
  &lt;code&gt;
  var SND_CLIP_PLAYER = &amp;quot;player.swf&amp;quot;; // Define the player's name &lt;br /&gt;
  var SND_CLIP_LINK_TITLE = &amp;quot;Click the arrow to play clip.&amp;quot;; // Title text &lt;br /&gt;
  function SndClip_Init() // Init the sound clip links &lt;br /&gt;
  {&lt;br /&gt;
var arrLinks = document.getElementsByTagName(&amp;quot;a&amp;quot;); // Find all anchors &lt;br /&gt;
var arrTargetLinks = new Array(); // The array for anchors with the className &amp;quot;sound_clip&amp;quot; &lt;br /&gt;
for (var i=0;i&amp;lt;=arrLinks.length-1;i++) {&lt;br /&gt;
var oLink = arrLinks[i];&lt;br /&gt;
if ((new String(oLink.className)).toLowerCase().indexOf(&amp;quot;sound_clip&amp;quot;)==&amp;quot;-1&amp;quot;) continue;&lt;br /&gt;
arrTargetLinks[arrTargetLinks.length] = oLink;&lt;br /&gt;
}&lt;br /&gt;&lt;br /&gt;
  for (var i=0;i&amp;lt;=arrTargetLinks.length-1;i++) { // Manipulate the link one after another &lt;br /&gt;
    var oLink = arrTargetLinks[i];&lt;br /&gt;
    //document.write(SndClip_GenCode(oLink.href));&lt;br /&gt;
    oLink.innerHTML = SndClip_GenCode(oLink.href) + oLink.innerHTML;&lt;br /&gt;
    oLink.title += &amp;quot;\n&amp;quot; + SND_CLIP_LINK_TITLE;&lt;br /&gt;
    }&lt;br /&gt;
    }&lt;br /&gt;&lt;br /&gt;
  function SndClip_GenCode(sSoundFile) { //Helper function to generate html code &lt;br /&gt;
    var sRet = '&amp;lt;object classid=&amp;quot;clsid:d27cdb6e-ae6d-11cf-96b8-444553540000&amp;quot; ';&lt;br /&gt;
    sRet += 'codebase=&amp;quot;http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0&amp;quot;'&lt;br /&gt;
    sRet += ' width=&amp;quot;16&amp;quot; height=&amp;quot;16&amp;quot; class=&amp;quot;sndclip_obj&amp;quot; align=&amp;quot;absmiddle&amp;quot;&amp;gt;';&lt;br /&gt;
    sRet += '&amp;lt;param name=&amp;quot;allowScriptAccess&amp;quot; value=&amp;quot;sameDomain&amp;quot; /&amp;gt;';&lt;br /&gt;
  sRet += '&amp;lt;param name=&amp;quot;movie&amp;quot; value=&amp;quot;'+ SND_CLIP_PLAYER +'?file='+ escape(sSoundFile) +'&amp;quot; /&amp;gt;';&lt;br /&gt;
  //Pass the parameter here, use escape to avoid encoding problems &lt;br /&gt;
  &lt;br /&gt;
  sRet += '&amp;lt;param name=&amp;quot;loop&amp;quot; value=&amp;quot;false&amp;quot; /&amp;gt;';&lt;br /&gt;
  sRet += '&amp;lt;param name=&amp;quot;menu&amp;quot; value=&amp;quot;false&amp;quot; /&amp;gt;';&lt;br /&gt;
  sRet += '&amp;lt;param name=&amp;quot;quality&amp;quot; value=&amp;quot;high&amp;quot; /&amp;gt;';&lt;br /&gt;
  sRet += '&amp;lt;param name=&amp;quot;scale&amp;quot; value=&amp;quot;exactfit&amp;quot; /&amp;gt;';&lt;br /&gt;
  sRet += '&amp;lt;param name=&amp;quot;bgcolor&amp;quot; value=&amp;quot;#ffffff&amp;quot; /&amp;gt;';&lt;br /&gt;&lt;br /&gt;
   sRet += '&amp;lt;embed src=&amp;quot;'+  SND_CLIP_PLAYER + '?file=' + escape(sSoundFile) + '&amp;quot; ';&lt;br /&gt;
    //Pass the parameter here, use escape to avoid encoding problems&lt;br /&gt;
    &lt;br /&gt;
  sRet += 'loop=&amp;quot;false&amp;quot; menu=&amp;quot;false&amp;quot; quality=&amp;quot;high&amp;quot; scale=&amp;quot;exactfit&amp;quot; ';&lt;br /&gt;
  sRet += 'bgcolor=&amp;quot;#ffffff&amp;quot; width=&amp;quot;16&amp;quot; height=&amp;quot;16&amp;quot; name=&amp;quot;player&amp;quot; align=&amp;quot;absmiddle&amp;quot; ';&lt;br /&gt;
  sRet += 'allowScriptAccess=&amp;quot;sameDomain&amp;quot; type=&amp;quot;application/x-shockwave-flash&amp;quot; pluginspage=&amp;quot;http://www.macromedia.com/go/getflashplayer&amp;quot; /&amp;gt;';&lt;br /&gt;
  sRet += '&amp;lt;/object&amp;gt;';&lt;br /&gt;&lt;br /&gt;
   return sRet;&lt;br /&gt;
    }&lt;br /&gt;&lt;br /&gt;
 function fnAddEventListener(obj, name, handler)&lt;br /&gt;
    {&lt;br /&gt;
    //alert(typeof(obj.attachEvent));&lt;br /&gt;
    if (typeof(obj.attachEvent)==&amp;quot;object&amp;quot;) {&lt;br /&gt;
    obj.attachEvent(&amp;quot;on&amp;quot; + name, handler);&lt;br /&gt;
    } else {&lt;br /&gt;
    obj.addEventListener(name, handler, false);&lt;br /&gt;
    }&lt;br /&gt;&lt;br /&gt;
 };&lt;br /&gt;&lt;br /&gt;
  fnAddEventListener( window , &amp;quot;load&amp;quot;, SndClip_Init);  &lt;/code&gt;
  &lt;p&gt;
  fnAddEventListener() is used to attach the SndClip_Init function to the window.onload handler, so that when the page finishs loading, all links on that page will be changed into playable.&lt;/p&gt;
  &lt;p&gt;The benefit for this method is that the markup is totally standard and compatible with any user agents, hence assesible. And advanced browsers would allow the user to preview as well as download the sound files. To enhance the method, you can pass more parameters to the player such as begin point, loop times etc. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20223988-113586005531700818?l=melop.sitesled.com%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/20223988/113586005531700818/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=20223988&amp;postID=113586005531700818" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20223988/posts/default/113586005531700818" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20223988/posts/default/113586005531700818" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Melopia/~3/eRvqdbEml98/playing-short-sound-clips-with-xhtml_29.html" title="Playing short sound clips with XHTML and Javascript" /><author><name>melop</name><uri>http://www.blogger.com/profile/02907571003906591711</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="03528773432408593064" /></author><thr:total>1</thr:total><feedburner:origLink>http://melop.sitesled.com/2005/12/playing-short-sound-clips-with-xhtml_29.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-20223988.post-113577231207970825</id><published>2005-12-28T20:10:00.000+08:00</published><updated>2005-12-28T20:45:57.416+08:00</updated><title type="text">A new look for my blog</title><content type="html">&lt;q&gt;New look, new begin.&lt;/q&gt;
&lt;p&gt;OK, may be you have no idea what I'm talking about. If you don't, it means that it's your first visit. :D. Actually the original style provided by blogger did not survive for a day and frankly speaking, I dun like it. So after a night's struggling, I decided to spend the whole afternoon working on a new look for the blog.&lt;/p&gt;
&lt;p&gt;Most markup remains the same with some minor changes compared to blogger's default template. And the design can work in most modern browsers. I would like call this layout &lt;em&gt;Motacillae&lt;/em&gt;, still in testing, please comment.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20223988-113577231207970825?l=melop.sitesled.com%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/20223988/113577231207970825/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=20223988&amp;postID=113577231207970825" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20223988/posts/default/113577231207970825" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20223988/posts/default/113577231207970825" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Melopia/~3/MyjYGaO48Pg/new-look-for-my-blog.html" title="A new look for my blog" /><author><name>melop</name><uri>http://www.blogger.com/profile/02907571003906591711</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="03528773432408593064" /></author><thr:total>0</thr:total><feedburner:origLink>http://melop.sitesled.com/2005/12/new-look-for-my-blog.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-20223988.post-113568608945219293</id><published>2005-12-27T20:19:00.000+08:00</published><updated>2005-12-30T13:58:57.163+08:00</updated><title type="text">Melopia, jumps back to blogger again.</title><content type="html">&lt;quote&gt;&lt;em&gt;Melopia-ae, f.  &lt;/em&gt; The place of melop.&lt;/quote&gt;
&lt;p&gt;After some months since I registered with blogger and found blogspot.com had been blocked in China, I finally come up with a way round to deal with it.&lt;/p&gt;
&lt;p&gt;As you can see, the blog is now hosted by http://www.sitesled.com, the free space provider, I can continue posting on blogger, and blogger will update this site for me. Sounds like a good idea, isn't it?&lt;/p&gt;
&lt;p&gt;OK, since I've got my blog now, I can't promise to update it too often, really. I registered on every FREE blog space I come across on the web, but I don't really write something before the account closes. I have to confess I'm lazy. But anyway, I'll try to do better this time.&lt;/p&gt;
&lt;p&gt;I like to call my blog &lt;em&gt;Melopia&lt;/em&gt;, some friends ask me why. Well, first, I study biology, and you know, biologist name all things they see(not all,but,lol,just myself) in Latin. Since my net name is "melop"(Derived from the scientific name of a bird I like), I just append &lt;em&gt;-ia&lt;/em&gt; to make it looks like a Latin word which can be translated as &lt;em&gt;The place of melop&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Then, it's time to plan what I should write on my blog. I love birding, so I may keep a birding log here. Web designer is what I am in free time, so I may write some stuffs on the web. I'm teaching myself Latin and do exercises every day following the book &lt;cite&gt;Latin for beginners&lt;/cite&gt;, so I may post some topics about that as well. &lt;/p&gt;

&lt;p&gt;Finally, about language I'll use. Chinese is my mother tougue, writing in Chinese sounds like natural. But, frankly speaking, my Chinese composition is not that good. Thus, English I will use most of the time.  Web 2.0 brings more interactions to the web, and you should see &lt;a href="http://www.flickr.com/photos/melop"&gt;my flickr page&lt;/a&gt; and &lt;a href="http://www.last.fm/user/melop"&gt;last.fm&lt;/a&gt; for my photos and recent tracks.&lt;/p&gt;

&lt;p&gt;So keep an eye on my blog, cu later!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20223988-113568608945219293?l=melop.sitesled.com%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/20223988/113568608945219293/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=20223988&amp;postID=113568608945219293" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20223988/posts/default/113568608945219293" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20223988/posts/default/113568608945219293" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Melopia/~3/yhQ1bw2P4Eo/melopia-jumps-back-to-blogger-again.html" title="Melopia, jumps back to blogger again." /><author><name>melop</name><uri>http://www.blogger.com/profile/02907571003906591711</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="03528773432408593064" /></author><thr:total>3</thr:total><feedburner:origLink>http://melop.sitesled.com/2005/12/melopia-jumps-back-to-blogger-again.html</feedburner:origLink></entry></feed>

