Monday, November 13, 2006

Musical Iconology 圖像音樂學

I've been composing for a local flute ensemble. They have a quite particular instrumentation -- two piccolos, about ten C flutes, two alto flutes, a bass flute, and a cello.  In my composition I have to take the number of each instruments into balancing consideration.  Say, for a rich bassy chord, there might not be enough low-pitched notes to support ten C flutes in the upper register.  One solution is to divide the C flutes into more parts, yielding to a, say, 7-part chordal structure. The other obvious solution is to ask only part of C flutists to play, instead of all.

這陣子我為當地一個長笛樂團作曲。這個團的編制很特別: 兩支短笛,十支左右長笛,兩支中音長笛,一支低音長笛,以及一個大提琴。作曲時,我必須為這個編制考慮平衡問題。比方說,如果我要一個低沈穩重的和弦,很容易發生低音部不夠支撐十多支高音長笛的問題。一個解決方式是把十支長笛再多分幾部,讓整個和聲架構變成七部;或是直接請部份的樂手不要演奏。

Dividing the C flutes into more parts has a problem: the score then will be too specific to adapt on other settings (I guess this nature provides the job market for arrangers). The other extreme is jazz charts -- the most flexible form of composition. I envy Hiromi Uehara that she can only write guidelines in her composition yet her guidelines are more specific than a jazz chart that the produced work still has a controlled overall structure.

Asking only part of the players to play makes me wonder that if a composer doesn't note how many playerss/he wants for a part (quite common in an ensemble score), the balancing is really up to the conductors/performers. I believe an educated conductor/performer will make proper decisions on that. On the other hand, this also reminds me one of the significance of musical iconology.  These scholars dig valuable information out of pictures.  By looking at an early picture with a band in the background, they can decide the partial balance of an ensemble work.  Amazing, isn't it?

把高音長笛再細分多部有個問題: 這會使該譜變得不彈性,不易給不同編制的樂團使用 (我想這也讓編曲者市場得以存在)。另外一種極端是爵士樂譜--那大概是最彈性的記譜吧。我很羨慕 Hiromi Uehara 在作曲時,只需要大概寫出綱要;而且她的綱要又比爵士樂譜更特定些,使得演奏出來的作品仍具有特定的總體結構。


Waiting for Perl 6

I still remember when I first learned Perl in 1999, I appreciated its string manipulation power, but my reaction to its typelessness was not very positive. I thought it would be a trap to invite bug bearing codes. Boy would I imagine that Perl has been indispensable in my daily shell scripting tasks, and none of the bugs I had had anything to do with its typelessness. Perhaps I was wrong on that. (Of course, without typing, memory management won't be as efficient. However, that's not the main concern for shell scripting.)

When PHP was out, many, including me, thought Perl would meet its end. PHP has much better HTML integration when it comes to CGI. PHP's OO support is much satisfying than Perl's (although PHP 4's OO wasn't really good enough but PHP 5's OO is fairly useful). Perl 5 does have some kind of OO support, but it is, in my opinion, way under development. (I found two documents particularly helpful: Writing serious Perl and Perl Object Oriented Programming.) (Also see this interesting "ideological" argument against Perl support OO.) However, Perl is more powerful in dealing with large data -- in PHP, you have the default 8MB memory restriction;Perl is supported by default by most Linux distributions (it means most people agree at its usefulness). What I think the most relevant for its survival (in my work environment) is that it pushes the concept of "quick and dirty" to an extreme that some would say "quick and elegant". Seasoned Perl programmers (so called one-liners) can really accomplish tasks with minimal codes. I haven't seen any other language that finds its nitch as well as Perl. (However, see this interesting article "Ancient Languages: Perl" by an ex-Perl programmer.)

Perl 6 is very much expected --it's been quite a long wait for me (since my first Perl project in 1999; Perl 5 was very improved but not enough for me). Fortunately it won't be as long as C++'s birth after C-- according to Wikipedia, Perl 6 alpha is to be released by the end of 2006. (I read about Pugs but decided to wait for Perl 6 when they didn't project the release date. Recently I got impatient and checked more about Pugs and found this brilliant Taiwanese fellow Audrey Tang behind the project. Quite a figure she is.)

Wednesday, July 26, 2006

SELinux vs. mount

I needed to share a directory which is actually a mounted ISO image via ftp, but SELinux would assign system_u:object_r:iso9660 to the directory as the context, instead of system_u:object_r:public_content_t. The solution is to use the option "-o context=system_u:object_r:public_content_t" in mount.

It's obvious why we need mount to work with SELinux when mounting any external media/drive.  However, when do we need to it to work with ISO image?  Well, a common application is to make available the contentof an ISO image via SAN, FTP, HTTP, etc.  This not only makes themanagement of files easier (one image file instead of millions of smallfiles, for example), it also allows us to have multiple virtualdrives.  That way, we don't really need a physical drive and/or disc.

I needed it to install Fedora 5 by sharing the content of FC5 DVD image via FTP.

Saturday, July 8, 2006

Music as non-focal point 學用音樂當配角


I was organizing and rearranging some ceremonial music for a local Buddhist group and a search led me to this site about one of the earliest Taiwanese musican in modern time.





The site reminds me of my college musicology class. One of ourclassmates went to temples to trascribe the cermonial chanting. I wasnot at all interested in religious music because I had the prejudiceagainst music not being "the leading role" in any "application" (Ialways want to pay full attention to music itself). However, later whenI started to score for films and media, I had to learn to let go ofsuch proud attitude from several arguments with directors and producers.

A leading actor/actress can shine to the fullest degree, but a supporting role needs to know the subtle balance, artistically.

Religious music, especially those with meditational tradition, touches our heart in an amazing way. Clever and complex music doesn't always fit well in a ceremony. Only the music that's just right will do.

Overthe years I've learn that music that sounds so simple, such as folksongs or new age music, may actually be very deep and very hard to write.

Friday, June 23, 2006

Reading xen guest disk image from the outside (FC5)

On Fedora's Xen wiki, there's a tutorial on how to read a xen guest OS's disk from the outside. The instruction works for a physical LVM, but when the disk is actually an image file,
the instruction there does not really work. Here I share my experience, step by step, in the hope of saving somebody else's time. The problem that the original instruction doesn't work is because many people (including myself) simply use Fedora's default
Volume Group name, VolGroup00 in both dom0 and guest systems. Therefore, vgscan will be confused by two volume groups with the same name and gathers only the info of the one currently working, i.e. the one used in dom0. Since LVM basically
provides a unique name for volume accessing, there is no way that we can assign a particular logical volume within a particular volume group, without having a unique name for it. The solution is to change the name of one of them. Since we usually deal
with many guest systems on the same dom0, I choose to change the name for dom0. (It's also possible to change the guest system instead by steps similar to the below, but note that it can only be done from the inside.)
Use Rescue Mode to access the system's root file system
  1. Reboot into the rescue mode (insert FC5 DVD, CD1, or Rescue CD, and at the boot prompt, type linux rescue).
  2. Choose language and keyboard layout.
  3. Choose No when asked about bringing up the network.
  4. When prompted about mounting the original file system, press F2 to bring up a shell.
  5. Wait for a while (for the background lvm process to find necessary info).
Change the volume group's name
  1. At the # prompt, type lvm vgrename VolGroup00 VGHost00
Change original references to the volume group's name
  1. # cd /mnt
  2. # mkdir root boot
  3. # mount /dev/mapper/VGHost00-LogVol00 /mnt/root
  4. # vi root/etc/fstab (replace VolGroup00 with VGHost00, you can use :%s/VolGroup00/VGHost00/g to do so and use ZZ to quit vi)
  5. # umount root; rm -rf root
  6. # mount /dev/hda1 /mnt/boot
  7. # vi boot/grub/grub.config (do the same substitution)
  8. # umount boot; rm -rf boot
Now we need to build a new init ramdisk that knows about the new volume group (reference from this blog)
  1. Press F1 to go back to the rescue menu where it asks about mounting the original system,select Continue (you can also manually mount it -- see the blog reference above)
  2. # chroot /mnt/sysimage
  3. # cp /boot/initrd-2.6.16-1.2133_FC5xen0.img /boot/initrd-2.6.16-1.2133_FC5xen0.old.img
  4. # mkinitrd -v -f /boot/initrd-2.6.16-1.2133_FC5xen0.img 2.6.16-1.2133_FC5xen0
  1. # exit
  2. # exit
  3. Remember to remove the Fedora DVD/CD1/RescueCD to boot from your HD
Read the disk image of the guest OS
  1. Use losetup -f to find a free loopback device. Here we assume it's /dev/loop0
  2. # losetup /dev/loop0 your_disk_image_file
  3. # kpartx -av /dev/loop0 (this should give us loop0p1 loop0p2 under /dev/mapper)
  4. # vgscan (this should report both VolGroup00 and VGHost00)
  5. # vgchange -ay VolGroup00
  6. # mkdir /mnt/guest_root
  7. # mount /dev/mapper/VolGroup00-LogVol00 /mnt/guest_root

To unmount it, basically we just reverse the steps:
  1. umount /mnt/guest_root
  2. rm -rf /mnt/guest_root
  3. vgchange -an VolGroup00
  4. kpartx -d /dev/loop0
  5. losetup -d /dev/loop0

Monday, June 5, 2006








Friday, May 12, 2006

SELinux vs. ftpd

Fedora comes withs SELinux and by default the settings are quite retrictive, an unfortunate necessity in today's hostile environment. This is particular true when SSL family (ssh, scp, etc.) has gradually replaced its plain-text counterpart (telnet, ftp, rsh, rcp, etc.). The setting for these insecure protocols is very protective.

However, in an intranet environment, when efficiency is more prioritized than security, these old tools still serve well. For example, I frequently have to transport huge files from a machine to another but don't want to use scp for it's very CPU and network bandwidth hungry. I would usually setup a temporary ftp server to do the file transport and turn it off afterwards. This is much faster than adding directory and authentication setting to samba or NFS.

Here I summarize how one can quickly setup vsftpd to accept download and upload.

I choose vsftpd due to its efficiency. I think Fedora made a good choice in making it the default ftp server. Since vsftpd comes in the server package by default, I won't go over the procedure of installing it.  Note that these is tested on FC4 only.  FC5+ may have different policies.

  1. su -
  2. Edit /etc/vsftpd/vsftpd.conf, make sure we have the following lines:
    1. anonymous_enable=NO
    2. write_enable=YES
    3. anon_upload_enable=YES
    4. anon_mkdir_write_enable=YES
    5. nopriv_user=ftp (the default is ftpsecure, but since Fedora has ftp account in /etc/passwd already, I simply use ftp instead)
  3. Give the account ftp a password by "passwd ftp"
  4. Change the security context for our anonymous ftp home directory (/var/ftp)
    1. chcon -R system_u:object_r:ftpd_anon_t /var/ftp (you can verify this by ls -Z)
  5. Make one directory for upload, and change its security context.
    1. mkdir /var/ftp/upload
    2. chcon -t ftpd_anon_rw_t /var/ftp/upload
  6. Turn on the SELinux boolean for ftpd_anon_rw_t
    1. setsebool -P allow_ftpd_anon_write 1
    2. add "allow_ftpd_anon_write=1" to /etc/selinux/targeted/booleans.local
  7. That's it.

Reference: Daniel J Walsh's reply to a discussion on this topic.

Monday, April 24, 2006

[QA] 我有沒有對莫札特的私房研究


On 4/24/06, xxx wrote:






我是有一些國內少見的資料, 不過是英文與德文的. 我認為, 對您而言, 要寫一份不一樣的報告, 絕對不是參考別人找不到的資料就夠了. 我建議您去聽場音樂會(或是相關的電影, 歌劇), 在事前先對曲目的背景與曲目本身的結構做預習, 然後聽的時候專心聽, 聽完之後把您個人的心得和所讀到的東西相互結合印證, 這樣一定會讓您的報告與眾不同. 寫報告的目的只是要讓您有個機會去接觸平常容易忽略的事物, 您不妨用這個機會真正親自接觸莫札特的音樂, 希望這個機會能讓您開始培養出深度聆賞的能力與興趣.



Friday, February 17, 2006

[FW] 不後悔的人生





















Wednesday, February 15, 2006




最後, 說真的, 以你所擁有的才華, 我真的一點也不覺得你傲慢或自大在哪裡! (想想傲慢和自大的典範--莫札特吧! 愛他的人還是遠遠多過嫉妒他的人, 不是嗎?^^)





Evoluation Psychology 這個近年的顯學,的確有它的道理,我也相信各種心理機制都有許多成因。在佛法中,我們稱之為 collective karma (共業) ── 人類的歷史、文化、心理、身體等,都是共業所感的結果。另一方面,從佛法的角度來看,所謂的「真相」,是有很多層次的。這有點像是我們國中高中學了物理學,但在現代物理的模型看來,很多都是在某些條件下才成立的特例。比方說,時間是線性的,電子的軌道是固定的...但這並不代表中學物理完全沒道理──它只是部份真實而已。



但是,這樣的講法只是用來「描述」「解釋」現象,這只是個「模型」。模型和被描述現象的本體,永遠不同。佛教的修行方法中,心靈能力的修行很重要。因為一顆清楚的心,是最好的觀察工具;一顆有智慧的心,不會被主客二元的對立所迷惑。一個人的德行是否是真的高貴,騙不過一個澄明的心靈。當然,這個修行過程很漫長。(有看過電影 Matrix 嗎?主角歷經頓誤過程,看穿現象的空性,但絕大多數人仍不願接受真實,還有體會過空性卻又被現象吸引而退轉的。我相信編劇一定受到佛教世界觀影響很深。)

我想我們所講的「謙虛」不大一樣。你講的是「謙虛」的「樣子」,但我講的僅僅是「認識事物真實的面貌」。現實生活中,謙虛的人會受到讚美,所以有人會多多講謙虛的話,來受到更多的讚美;也有人像你說的,怕忌妒,所以不敢專美。但是,如果我們看清楚事物的本質,會發現萬物都是相依相存的 (佛法中叫做因緣法)。






Tuesday, January 31, 2006

[talk] The Art of Listening (to Music, Language, Mind)

I will conduct a 3-day workshop in Ocean Lotus Farm during May 5-7, 2006. This is the introduction to the workshop. If you are interested in participating, please contact Ocean Lotus Farm for further details.

The Art of Listening

Ocean Lotus Farm Workshop

Tsan-Kuang Lee

May 5-7, 2006


Music, language, and thoughts come so easily in our daily life that most of us take them for granted and stop interacting with them meaningfully. We hear music without listening to it; we let our spouses talk to us without knowing what they are really saying; we hear our own inner voices but constantly ignore them.

In this workshop, we learn the art of listening. We learn how to listen to and enjoy music; we learn how to listen to and comprehend language; we learn how to listen to and become union with our thoughts.


Few people would say they don't love music. Music empowers an army,preludes the birthday cake serving, announces a friend's call,farewells the use of your computer, and accompanies our showering. It's so close to our daily life, but why are there moments when we wonder,how come some people are so crazy about symphonies in the concert hall,jazz solos in the bar, or loud raps on the street? Why, while an opera and a movie may both take two hours, most people find the lengths of the two psychologically so different?

Of course, it's a matter of preference and taste. Some love operas; some love movies. In fact, most of us can manage to be with music for a while in the concert hall, in the bar, or on the street. We can also learn when to applaud, when to scream, or when to shake and nod our heads. However, how the music itself really interacts with us internally, is probably irrelevant to the social codes that make us good audience.

How do we really enjoy music?

Again,the question is, how "we" "really" "enjoy" "music". First, it's"enjoyable", not boring, nor patience-challenging; neither does it make us feel arrogant or ignorant. Second, the enjoyment is "really"experienced, not imagined or pretended. Third, the satisfaction comes from the "music", not from the well-decorated concert hall, the dressed-up audience, the gossips about a famous conductor, or "the attractive girl/boy who saw me go to Philadelphia Symphony Orchestra". Most importantly, "we" participate in the whole process.

In this workshop, we will (re-)learn to listen to music, and learn to appreciate different types of musical expressions.


Thanks to the best-sellers, everybody today knows that listening plays an essential role in effective communication. However,being proficient in Martian and Venusian does not seem to guarantee better understanding. While we try very hard to listen, we still hear something very different from what's intended or even what's said. How do we fill the gap between theory and practice?
In this workshop,we will re-evaluate our listening ability and investigate the factorsthat hinder it. Then we learn to establish new listening habits tobreak from the bad cycles of poor communication that we were so used to.


The techniques of taming one's mind have been around for several thousands of years, and have been used by many different traditions, from religions(Buddhist, Catholic , Christian, Taoist, to name a few), to modern training (music performance, business leadership, athletics, military,etc.), and healing (stress reduction, meditational healing, etc.).However, most of us still have little control over our own minds.Running thoughts take over easily and many of us either ignore its effects or totally give up on disciplining our minds.

Why do we need to discipline our minds? Aren't discursive minds more creative? Don't we relax more when we just let our minds go free? Aren't minds more natural without control?

It's no surprise that many of us have such questions. On the other hand, we also wish we had the power to stop thinking in a sleepless night;musicians/speakers/athletes/examinees hope to concentrate on the performance instead of worrying about what would happen to them if they don't do well; in classrooms we hope to focus so we can learn better.

A trained mind does not only benefit us in those achievement-oriented goals. Obviously, if we are worrying about our tax return when we are in the Grand Canyon, we certainly are missing something; if we keep checking the time for the parking meters outside of the concert hall,we certainly won't be able to enjoy the music; if we are nervous about an exam on the table, we certainly won't be able to taste the breakfast fully.

A chaotic mind may actually harm us. We bite ourselves because our minds are not with us when eating; we fall because our minds aren't walking with us; we have car accidents because our minds aren't alert enough.

It actually goes deeper if we take it seriously: we say harmful words to others because our negative thoughts rule us; we ignore important signals/signs of dangers because our minds aren't clear; we fail to hear our own voices among other noises in our minds and regret not listening to ourselves.
Mindful technique swill be instructed and used throughout the workshop. We learn to pay full attention to music, language, and thoughts. Then we hope to apply the same techniques to other things and improve the quality of our daily life.

Workshop Rules

In this workshop of the Art of Listening, we want to emphasize the practice of listening instead of talking and expressing. Therefore, we require the participants to observe the following rules during the whole time of the workshop(including non-class time), for the sake of ourselves and others:

  • No talking except for in-class discussion.
  • No phone calls. (All emergency incoming calls should be taken and redirected by Ocean Lotus Farm administration.)
  • No emailing.
  • No reading, unless asked to.
  • No listening to personal music/speech.

These rules really help protect our minds from going away. According to our experiences, these simple rules turn out to be very powerful and enable one to go into a deeper level of observation and concentration.

Powerful transformation comes from a determined mind willing to change bad habitual patterns. Let's make it our Lesson One: when we come to the workshop, we bring our full mind here. We deal with other things before or after, but not during, the workshop.

About the Speaker

This workshop will be led by composer/linguist/meditator Tsan-Kuang Lee, who will share his insights on how to listen to music/language/mind deeply.

Trained to be a scientist in high school, turning to literature in college, but ending up studying linguistics and computer science in graduate school; with several established musicians' help, Tsan-Kuang is now working as a composer/arranger/performer, as well as a software developer. In recent years, he has been learning to re-exam himself through Zen practices; he has found Zen practices sharpen one's sensibility, deepen one's understanding, break one's prejudice, and free one's concepts,while at the same time, cultivate one's compassion and bring one harmony.

Friday, January 27, 2006

[FW] A Rescued Whale Thanked her Rescuers

I got a short summery of a news report from a friend's email. It's about a whale entagled in traps and the rescuers risked their lives to save her; afterwards, she thanked the rescuers.

I got a short summery of a news report from a friend's email.

If you read the front page story of the SF Chronicle on-- Thu, 15 Dec 2005 -- you would have read about a female humpback whale who had become entangled in a spider web of crab traps and lines. She was weighted down by 100s of pounds of traps that caused her to struggle to stay afloat. She had 100s of yards of line (rope) wrapped around her body - her tail, her torso, a line tugging in her mouth.

A fisherman spotted her just east of the Farralone Islands (outside the Golden Gate) and radioed an environmental group for help. Within a few hours the rescue team arrived and determined that she was so bad off, the only way to save her was to dive in and untangle her - a very dangerous proposition; One slap of the tail could kill a few rescuers. They worked for hours with curved knives and eventually freed her. When she was free, the divers say she swam in what seemed like joyous circles. She then came back to each and every diver, one at a time, and nudged them, pushed them gently around - she thanked them... some say it was the most incredibly beautiful experience of their lives. The guy who cut the rope out of her mouth says her eye was following him the whole time, and he will never be the same.

By checking, I found it's a true story and its original source.

This article was written by Peter Fimrite (see his email at the end of the article) and was originally posted on San Francisco Chronicle on December 14, 2005.

Daring rescue of whale off Farallones

Humpback nuzzled her saviors in thanks after they untangled her from crab lines, diver says

- Peter Fimrite, Chronicle Staff Writer

A humpback whale freed by divers from a tangle of crab trap lines near the Farallon Islands nudged its rescuers and flapped around in what marine experts said was a rare and remarkable encounter.

"It felt to me like it was thanking us, knowing that it was free and that we had helped it," James Moskito, one of the rescue divers, said Tuesday. "It stopped about a foot away from me, pushed me around a little bit and had some fun."

Sunday's daring rescue was the first successful attempt on the West Coast to free an entangled humpback, said Shelbi Stoudt, stranding manager for the Marine Mammal Center in Marin County.

The 45- to 50-foot female humpback, estimated to weigh 50 tons, was on the humpbacks' usual migratory route between the Northern California coast and Baja California when it became entangled in the nylon ropes that link crab pots.

It was spotted by a crab fisherman at 8:30 a.m. Sunday in the open water east of the Farallones, about 18 miles off the coast of San Francisco.

Mick Menigoz of Novato, who organizes whale watching and shark diving expeditions on his boat the New Superfish, got a call for help Sunday morning, alerted the Marine Mammal Center and gathered a team of divers.

By 2:30 p.m., the rescuers had reached the whale and evaluated the situation. Team members realized the only way to save the endangered leviathan was to dive into the water and cut the ropes.

It was a very risky maneuver, Stoudt said, because the mere flip of a humpback's massive tail can kill a man.

"I was the first diver in the water, and my heart sank when I saw all the lines wrapped around it," said Moskito, a 40-year-old Pleasanton resident who works with "Great White Adventures," a cage-diving outfit that contracts with Menigoz. "I really didn't think we were going to be able to save it."

Moskito said about 20 crab-pot ropes, which are 240 feet long with weights every 60 feet, were wrapped around the animal. Rope was wrapped at least four times around the tail, the back and the left front flipper, and there was a line in the whale's mouth.

The crab pot lines were cinched so tight, Moskito said, that the rope was digging into the animal's blubber and leaving visible cuts.

At least 12 crab traps, weighing 90 pounds each, hung off the whale, the divers said. The combined weight was pulling the whale downward, forcing it to struggle mightily to keep its blow- hole out of the water.

Moskito and three other divers spent about an hour cutting the ropes with a special curved knife. The whale floated passively in the water the whole time, he said, giving off a strange kind of vibration.

"When I was cutting the line going through the mouth, its eye was there winking at me, watching me," Moskito said. "It was an epic moment of my life."

When the whale realized it was free, it began swimming around in circles, according to the rescuers. Moskito said it swam to each diver, nuzzled him and then swam to the next one.

"It seemed kind of affectionate, like a dog that's happy to see you,'' Moskito said. "I never felt threatened. It was an amazing, unbelievable experience."

Humpback whales are known for their complex vocalizations that sound like singing and for their acrobatic breaching, an apparently playful activity in which they lift almost their entire bodies out of the water and splash down.

Before 1900, an estimated 15,000 humpbacks lived in the North Pacific, but the population was severely reduced by commercial whaling. In the 20th century, their numbers dwindled to fewer than 1,000. An international ban on commercial whaling was instituted in 1964, but humpbacks are still endangered. Between 5,000 and 7,500 humpbacks are left in the world's oceans, and many of those survivors migrate through the Gulf of the Farallones National Marine Sanctuary.

Whale experts say it's nice to think that the whale was thanking its rescuers, but nobody really knows what was on its mind.

"You hate to anthropomorphize too much, but the whale was doing little dives and the guys were rubbing shoulders with it," Menigoz said. "I don't know for sure what it was thinking, but it's something that I will always remember. It was just too cool."

Humpback whales hold a special place in the hearts of Bay Area residents ever since one that came to be known as Humphrey journeyed up the Sacramento River in 1985. The wayward creature swam into a slough in Rio Vista, attracting 10,000 people a day as whale experts tried desperately to turn it around. Humphrey went back to sea after 25 days of near-pandemonium and worldwide media attention.

In the fall of 1990, Humphrey turned up again inside the bay in shallow water near the Bayshore Freeway, finally beaching on mud flats near Double Rock, just off the Candlestick parking lot. He remained stuck for 25 hours, until volunteers, helped by a 41-foot Coast Guard boat, pulled him free and sent him back to the ocean. He has not been seen since.

Humpbacks like Humphrey do seem to relate to people more than other whales, according to Stoudt.

"You do hear reports of friendly humpbacks, whales approaching boaters, especially in Baja California," Stoudt said, "but, for the most part, they don't like to be interacted with."

E-mail Peter Fimrite at

Page A - 1
©2006 San Francisco Chronicle

[FW] 偶爾離開象牙塔





























Thursday, January 26, 2006



...之前在另一篇「Change of My Copyright Policy 版權更動」裡提到我想在Creative Common(創用 CC)和PublicDomain(公共智財中擇一為我在網上出版作品的條款。基本上,PublidDomain就是把作品捐給大眾,有人要拿去營利也可以,但CreativeCommon能讓我保留一些基本權利,限制作品被拿去商用。我原來比較傾向捐出來,這樣我也沒有什麼多餘的負擔。但我還有一些擔心:...

之前在另一篇「Change of My Copyright Policy 版權更動」裡提到我想在Creative Common(創用 CC)和Public Domain(公共智財中擇一為我在網上出版作品的條款。基本上,Publid Domain就是把作品捐給大眾,有人要拿去營利也可以,但Creative Common能讓我保留一些基本權利,限制作品被拿去商用。我原來比較傾向捐出來,這樣我也沒有什麼多餘的負擔。但我還有一些擔心:



-----Original Message-----
From: Tsan-Kuang Lee
Sent: Tuesday, January 10, 2006 4:44 PM
To: Li Shu Hsien 李書賢
Subject: Public Domain


我想把我一些文字與音樂作品捐給 public domain, 也就是 no right reserved. 如果未來有個人拿了我的曲子,說是他的作品,我是不是完全不受保護?

我的理解是著作權和版權是不同的。只要作品是我寫的,他用他的名字再發表,應該就不行。但法律可有保護這點?也就是說,我如果發表「命運交響曲」,因為貝多芬已死去多時,作品已是公共財,我是不是就不會受到任何法律的約束?謝謝你的回答。我在考慮用 creative common 但有很多想不通的問題。










ps. 附上一些你回答你問題的法條,及這些法條的出處





一 著作財產權人死亡,其著作財產權依法應歸屬國庫者。
二 著作財產權人為法人,於其消滅後,其著作財產權依法應歸屬於地方自治團體者。








原來我選擇Creative Common來當做版權條款,背後還有我很多本來看不到的自私原因,並不是自己以為得那麼慷慨哩!

Tuesday, January 24, 2006

About Category Jazz 關於爵士樂區

開始作曲以來,我一直為爵士樂的即興本質著迷。可以說,即興演奏,就是在當下作曲,而且在音樂發生時,能帶給演奏/作曲者自己許多驚奇。(雖然我這麼說,我仍覺得傳統作曲很重要。這大概是因為人心智的極限吧 ── 我們能想像一個交響樂團以即興的方式而能夠奏出像春之祭一樣結構複雜的作品嗎?)對我個人而言,即興精神和禪的本質很接近 ── 抓住當下。



I've been fascinated by the improvisational nature of jazz since I started composing. In a sense, it's like composing in real-time, full of surprises even for the composer/performer himself/herself. (That said, I still value planned composition a lot due to the limitation of human mind -- imagine an orchestra improvises and produces a symphony that's as neat and tight as Rite of Spring.) And for me personally this is very close to Zen -- moment to moment awareness.

I play jazz piano and compose/arrange for jazz bands. For me, it's fun, satisfying, and a great practice for me as a Zen pratictioner. The excitement of listening to great jazz musicians' improvisation has always taught me to be humble and be more in the moment.

In this category, I will put some handouts of my early talks introducing jazz, some email I wrote to recommend standard tunes, and perhaps some reflections I got over the years.

Monday, January 23, 2006















Friday, January 20, 2006

Sound and Music copyright for this blog 本網誌聲音音樂版權

Audio/Music 聲音/音樂

Effective 生效日期: 2006/01/20

Creative Commons License

The audio/music works on this blog, unless otherwise noted, are licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 2.5 License.

除另外註明,本網誌的聲音與音樂著作係採用創用 CC 姓名標示-非商業性-禁止改作 2.5 授權條款授權。

Text copyright for this blog 本網誌文字版權

Text 文字

Effective 生效日期: 2006/01/20

Creative Commons License

The text works on this blog, unless otherwise noted, are licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License.

除非另外註明,本網誌上所有文字使用創用 CC 姓名標示-非商業性-相同方式分享 2.5 授權條款

Copyright for this blog 本網誌版權

By default, text works on this blog use this license. Music works use this license.

You can find a note I wrote about the change of the copyright and my thoughts on the copyright of my website over the years. And here's the copyright history from 1998/05/19 to 2006/01/10.

Saturday, January 14, 2006

About Category Studio 關於錄音室與錄音工程


About Category Studio


I'vebeen hoping to share my own experience in the music studio, but as timegoes by, very little was done. However, my answers to friends'questions over the years seem to be useful for some people out there;thus I put them here.

Tuesday, January 10, 2006

Change of My Copyright Policy 版權更動

1998年起架了第一版個人網頁時,就開始寫版權文件。... 大概在2004年夏天左右,我開始有把這些文字作品版權釋出的想法。原因大抵有二: ....

I wrote my first Copyright Statement in 1998 when I created my first version of personal website. ... In 2004 summer, I started considering releasing the copyright of my articles, for two main reasons: ....

(English translation followed)









目前考慮在public domain與creative common之間擇一,來當做網站大部份作品的預設版權。


I wrote my first Copyright Statement in 1998 when I created my firstversion of personal website.

The first statement (1998) was written because I hope my works wouldn't be used commercially without attribution and my permission again.

Since my second version website was created, I started to receive tons of email requesting my permission to use my articles, mostly from from students, and mostly around the end of summer/winter breaks or semesters. Obviously my articles were used for their homework.

I was very eager to help educate Taiwan society to respect the property of wisdom, so I setup a protocol for students to follow, to get the permission of using my works. Responding to those requests was really time and energy consuming. I actually learned a great deal from the requests from students of different age, gender, region, and generation. Their attitudes vary a lot: from enthusiastic music newbies constantly exchanging ideas with me, to some one leaving a terse note, "Well written. I'll use that for my homework. Bye.", to somebody asking "I need English translation of your Mozart article. Because I have a short deadline, could you please finish the translation and send it to me by Monday? Thank you!".

I have to admit that I once felt so out-dated.

In 2004 summer, I started consideringreleasing the copyright of my articles, for two main reasons:

1. I believe I have written clear enough to explain what copyright is and why it's relevant. For those who alreaady know to respect others, my words don't add anything; those who are willing to learn can learn from what I wrote; as for those who simply can't learn to respect others (yet, hopefully), if my copyright statement couldn't convince them, how would my additional email?

2. I started to meditate in 2003. Meditation enabled me to clearly see my clinging to fame (I made sure my credit is mentioned), to profits (I felt angry when others used my works for their commercial purpose), to phenoma (I couldn't let go whenever I failed to change a student's attitude), and to achievement (I wanted to know how many people used my works). I also realized that these clingings benefited nobody but simply brought me unhappiness. With these observations, my practice gradually equipted me with the power to let go.

Then for a while I got busy in my life so I haven't got any chance to update my copyright statement, until early 2006.

Now I'm choosing between Public Domain and Creative Common. One of them will be the default copyright policy of my blog.





  • 所有的引用與參考,必須在所引用(或參考)的段落旁,附上「參考(或引用)資料出處:李璨光個人網頁」或同義字樣。
  • 成品具商業或營利用途者(書報雜誌或各種平面、立體、電子媒體),須經作者本人(李璨光)正式書面授權。



1997年我架設個人網頁時,是希望能將過去PC BBS討論音樂的風氣換另一種網路媒體繼續下去。可是,這麼多年來,我所收到的一兩百封信裡,絕大部份都是學生來信要求「借用」我的文章,來應付音樂課作業、暑假作業、壁報展等。當初與樂會友的目的沒有達到,反倒讓許多學生有一個方便應付音樂報告的方法。除了一位國中音樂老師來信討論學生抄襲問題外,我在實際的教書經驗裡,也為學子們習慣抄襲的問題頭疼不已。因此,我也花了不少時間和口舌來試著傳播一個尊重他人創作的習慣,與正確參考、引用的方法。原本我要求需要我授權引用我作品的人提供姓名、用途(校名課名等)及授權期限。我接到來信後,會回寄一封具法律效用的電子簽章授權書。


有許多朋友並沒能真正明瞭尊重原作的意義,以匿名、別名、無效電子郵件住址來信,或是提供假的資訊。這點令我不解 ── 一份寫給就讀「某國中某年級的大牛」的授權書,要如何有法律效用?如果不願意以真面目與我接觸,寫一封「你寫得不錯,我要拿來交報告,謝啦!」的信,到底意義何在?







我收到許多匿名網友的來信要求引用我的文章。有的雖不是完全匿名,但使用暱稱或是難以解讀的代號。在此說明,我的授權書,無法授權給沒有法律效用的稱號。因此,我要求來信者附上以下資料 :

  1. 真實姓名(若使用筆名出版,請加附筆名)
  2. 用途 (出版品請附刊物名及出版處,學校報告請附上校名、班系級、課名及授課者姓名)。
  3. 需要授權的時間期限










在取得本人授權書授權您引用之前,您引用本人資料是違法的。若您仍需使用本人文章,請提供真實資料。請參考 謝謝。
















  • 真實姓名(若使用筆名出版,請加附筆名)
  • 用途(出版品請附刊物名及出版處,學校報告請附上校名、班系級、課名及授課者姓名)。
  • 需要授權的時間期限










那時候,台灣的PC BBS站還只有十幾個的時候,我也架了個GT站台,當做一些同好交流的中心。後來,BBS人口愈來愈多,功能需求也愈來愈大,於是先後改用PC Board,Power Board,Maximus架站,同時廣收站友。








Date2002-06-17 07:36
去過你的網站 裡頭有我想要的資料
喔 我先自我介紹 我姓x 可以叫我xx 我是一個高中生
因為我的音樂老師要一份有關 w.a.mozart 的資料
而我急需複製你的作品 可能等不到你的回應
在此 我深感抱歉 望請諒解






如果您資料已經交給老師,而您用我的文字沒有標注網址出處,請您將出處補交給老師。出處請標明「李璨光的莫札特網站 」。如果還沒交,請您務必將出處補上。不管您如何處理,請您來信告知您的處理方式。如果您沒有這樣做,很抱歉,我無法同意您使用任何我放在網路上的資料。如果您仍有未經授權使用我資料的情事,表示您選擇玩見不得人的躲迷藏了。

最後,容我指出,您的來信沒有稱呼,沒有真實姓名,使用免費信箱,行文中也完全看不出真正要徵得原作同意的誠意,在我看來,是非常沒有禮貌的。我好幾個在高中教音樂的朋友們都要我直接拒絕您,而且她/他們都說如果您是她/他們學生,一定會被當。但我認為您並不了解您行為的嚴重性,所以我花一些時間向您解釋這一切。希望對您 (以及其他已遭殃或未遭殃的車主) 有幫助。




PS: 我會將我的回答公佈到網上。但您的 email 住址與稱呼不會被公佈。如果您覺得不妥,請讓我知道。順便也請您看一看過去關於使用我網站資料的著作權相關問答。其中包括一位音樂老師的來信。


我很抱歉讓你有這麼不好的感受 我在我的報告上有附上你的站名


畢竟這是網路世界 沒什麼不能發生

我姓x 名xx 為了表示我的誠意及我歉意




我被你信中的內容嚇到 的確 我不知道這樣做的嚴重性


另外我誠心向你道歉 希望你能夠原諒我不當的行為

若你能不記前嫌的話 我很希望和你成為朋友

還有什麼是你對我存有疑問的 我希望你能明確的告訴我









我欣賞你敢做敢當敢改的個性,也接受你的道歉,當然也同意你在尊重我著作權的前提下自由使用我的創作。關於公布你資料,我建議保留你的姓名 (也就是匿名)。現在的搜尋引擎容量都很大,一旦你的名字被存入 cache 後,恐怕要很久很久才會改變。你年紀還輕,大概還沒有什麼出版記錄。總不希望人家上網用「xxx(來信者姓名)」搜尋,就只看到這件烏龍事吧。

最後,是不「計」前嫌 (至少我小時候還是「計」);還有,best wish"es".



From 中學生
Subject 做音樂報告





From 李璨光






From 學生
Subject Copy文章




Sincerely XXXX

From 李璨光

Dear XXXX,


1. 非常感謝您知會我。這代表您願意尊重我。

2. 不知道您說的 copy 指全篇抄用還是指部份參考?不管是那一個,都歡迎您轉錄使用。但我希望您標注參考資料出處。這也會讓您作業顯得正式而嚴謹。



From X同學
Subject 引用文章



截錄處:Oh! Mozart!


2. A great poet uses but the twenty-six letters ofthe alphabet, and without devising a single new word gives voice tooughts undreamed-of. (Mozart 正如一偉大詩人,毋須創造任何新字,僅僅用二十六個字母,道出了我們幻夢未及的情感。)Mozart, His Character, His Work by Alfred Einstein



From 李璨光



信末附上電子簽名的授權書。您只需標注資料出處 (李璨光的莫札特網站,不需在您的大作中附上授權書。
1...我們常常可以聽到人用「清澈透明、純真自然」來形容他的音樂。Mozart的音樂在表面上的確相當地「簡單」,讓人聽起來細毫沒有什麼困難,沒有Bach(巴哈)複音音樂那種複雜性,也沒有Beethoven般老愛給人「和平、奮鬥、救世界」的那種使命壓力,更不是像Haydn那種簡單到 我忍不住用「拙」來形容

2. A great poet uses but the twenty-six letters of the alphabet,andwithout devising a single new word gives voice to oughtsundreamed-of. (Mozart 正如一偉大詩人,毋須創造任何新字,僅僅用二十六個字母,道出了 我們幻夢未及的情感。)Mozart, His Character, His Work by Alfred Einstein

這段話我只是翻譯。原文是Alfred Einstein寫的。也請您別忘了標上真正的原作。





Tuesday, January 3, 2006

[QA] 美語補習班課程錄音帶


An English language after-school consulted me for a low-cost solution to record their classes for students to review at home. They are using a dual-deck cassette recorder but it's too time-consuming.

(English translation below)


1. 錄音設備/媒體
2. 複製方式
3. 傳播方式

我認為最好的方式還是用數位的方式,長期下來能節省大量成本。您購買幾台 mp3 錄音設備(或是一間教室裝一台PC來錄音),上課完將錄好的檔案燒錄至光碟(由於mp3檔案小,燒錄速度遠比音樂CD快),或是用USB隨身碟(這就更快了;一個學生買一支應該不為過;一兩個小時的課內容64MB就很夠了),或是放到網站上供學生下載(最方便的方法)。學生應該都有電腦或mp3 player來播放mp3檔案。


如果一定要輸出成錄音帶,又不用錄音室的品質的話(那樣您也需使用較昂貴的帶子),可以用有監聽輸出的錄音設備(一般現代電腦用的可錄音的音效卡就可以了),一邊錄入電腦成數位音檔,一邊錄入錄音帶。然後再用 high speed cassette duplicator 大量複製。購買的時候可以選擇速度,基座數(一次可以拷貝幾卷),以及軌數(單音或立體)。


You need to consider:

1. the recording equiment and media

2. how you duplicate the media

3. how to distribute the media

I would recommend digital means throughout. That would save your cost over time.

You may equipt your classrooms with mp3 recorders or PCs to record the class. Then you can burn the mp3 files, the size of which enables faster burning than audio CDs. You can even use USB thumb drives for even faster file transfer (64MB should be enough for a 2-hour class recording). The easiest way is to provide the files online for students to download themselves. Most students in Taiwan should alreay have an mp3 player or a PC to play the files.

If you go with the cassette solution, you may want to consider the cost in the long run (I think the cost will outrun digital solution after several classes). The cost would include the cassettes themselves, the duplication system, and the time and efforts involved in duplication. Digital means also allows easier archiving and duplication.

If cassette is a must, and you don't go after studio quality, you can use recording devices with monitor out (if you use a PC, most likely its sound card would work). This way, you can record into digital files and analog tapes at the same time. Then, you can use something like "high speed cassette duplicator" to make duplications. When you buy a high speed cassette duplicator, you can opt its copying speed, the number of decks (how many tapes you can copy at one run), and the number of channels (mono or stereo).

Monday, January 2, 2006

Idx/Sub Subtitle File Time Adjust (ISFiTA) v0.01

This is a quick and dirty (even the acronym) perl script I use to time-shift/stretch idx/sub subtitle files.


# Idx/Sub Subtitle File Time Adjust (ISFiTA) v0.01
# Author: Tsan-Kuang Lee
# Date: Jan 2, 2006
# What does it do?
# A video file may have different subtitle files, which not only differ in format
# but also differ in their timestamps. Usually this is because the creators of
# the subtitle files are syncing their subtitles to different video files (of the
# same content, but some with, say, trailors, and others without).
# For example, there are two video files: v1 and v2. Let's say v1 has 2 minutes more
# trailors from the beginning before the main content. Subtitle creators make s1 for
# v1 and s2 for v2.
# However, we only have v1 and s2 at hand. We want s2 to sync with v1.
# If s2 is in plain text subtitle format, e.g. SRT, TXT, SSA, etc. Many excellent
# utilities have been written, such as: SubCreator,
# ISFiTA deals with idx/sub format.
# How to use it?
# ISFiTA simply reads the idx file (it's a plain text file) and recalculate the
# timestamps, according to the parameters we provide. We'll need to provide the
# several parameters. Here's what you would usually input at the command prompt:
# % perl 3 film0.idx 00:03:55:735 01:32:53:067 film.idx 00:03:34:535 01:32:32:067
# Here's what they mean:
# "%" is the command prompt;
# "perl" launches this script;
# "3" is the index code of the language you want to deal with. If you open the idx file
# with a text editor, you would see something like "id: zh, index: 3". zh is the language
# code for Chinese (Zhong-wen), and "3" is what we want here.
# "film0.idx" is the original idx file we want to read from.
# "00:03:55:735" is the timestamp (the last three digits are in milliseconds) of one
# specific subtitle line in "filem0.idx". Let's say it maps to the line "Let the show begin!".
# Many tools let you see which line "00:03:55:735" maps to, e.g. VobSub. (Of course, you need
# to have film0.sub for VobSub to display the image.)
# "01:32:53:067" maps to another line in "film0.idx", say "See you next time!".
# "film.idx" is the target file we want to write to.
# "00:03:34:535" is the target timestamp for "Let the show begin!". You can get this target
# timestamp from watching the video file, or from a correctly synced subtitle file.
# "01:32:32:067" is the target timestamp for "See you next time!".
# "Let the show begin!" doesn't have to be the first line in the whole subtitle; likewise,
# "See you next time!" doesn't have to be the last. However, the more apart they are from
# each other, the more accuracy of caculation we get, since the minor time-offs will be
# divided into ignorably small differences.
# Don't forget to provide film.sub to complete the idx/sub pair. Just use the original sub and
# correctly rename it.
# About
# This is a quick and dirty perl script (even its acronym sucks) I use to time-shift/stretch
# idx/sub subtitle files. Do whatever you want with it, at your own risk. If you do improve
# it or rewrite it, I encourage you to share it with the public. Authors of free utilities have
# my highest respects.
# Todos for you
# Here are some suggestions if you want to contribute something to the Open Source world, or the
# freeware world:
# SubCreator has much more sophisticated transformations. For example, you can decide the time
# range in which you want to adjust the time code.
# Obviously Perl is not user-friendly for most people. You may want to re-write it in another
# language and compile it into an excuteable.
# GUI makes it more approachable.
# Bug the authors of VobSub, SubCreator, etc. to include idx/sub time adjust/stretch functions
# into their utilities.

# Command line arguments
unless (@ARGV == 7) { die "Usage: $0 lang_index in_file in_start in_end out_file out_start out_end\n(timestamp format: hh:mm:ss:mis)\n" }
($lang_index, $in_file, $in_start_timestamp, $in_end_timestamp, $out_file, $out_start_timestamp, $out_end_timestamp) = @ARGV;

# Open files
unless (open INFILE, "<", $in_file) {
die "Couldn't open input file $in_file: $!; aborting";
unless (open OUTFILE, ">", $out_file) {
die "Couldn't open output file $out_file: $!; aborting";

# calculate necessaary transformation (shift, slope)
# simple linear transformation formula :
# new_bx = (ax - a1) * (b2-b1)/(a2-a1) + b1 , where
# a1 = in_start ; a2 = in_end
# b1 = out_start; b2 = out_en
# ax = old_time_point

$shift_milliseconds = &convert_to_milliseconds($out_start_timestamp);
$slope = (&convert_to_milliseconds($out_end_timestamp) - $shift_milliseconds) / (&convert_to_milliseconds($in_end_timestamp) - &convert_to_milliseconds($in_start_timestamp));
$in_start_milliseconds = &convert_to_milliseconds($in_start_timestamp);

# start processing

$section = "header";
while ()
if ($section eq "header" || $section eq "other_lang")
# check language id
# id: zh, index: 2
if ($_ =~ m/^id: *.+, index: *(.+)$/)
if ($1 eq $lang_index)
$section = "processing";
print "Processing $_";
$section = "other_lang";
elsif ($section eq "processing")
# stop when another language id tag appears
if ($_ =~ m/^id: *.+, index: *(.+)$/)
$section = "other_lang";
elsif ($_ =~ m/^(timestamp: )(\d\d:\d\d:\d\d:\d\d\d)(,.+)$/s)
# only process lines with timestamps, e.g.
# timestamp: 01:22:20:634, filepos: 00011a000
$_ = $1 . &calculate_new_timestamp($2) . $3;
print OUTFILE $_;

sub calculate_new_timestamp
my ($old_timestamp) = @_;
$new_milliseconds = (&convert_to_milliseconds($old_timestamp) - $in_start_milliseconds) * $slope + $shift_milliseconds;
return &convert_to_timestamp($new_milliseconds);

sub convert_to_milliseconds
my ($string) = @_;
$string =~ m/(\d+):(\d+):(\d+):(\d+)/;
$milliseconds = $4 + $3*1000 + $2*1000*60 + $1*1000*60*60;
return $milliseconds;

sub convert_to_timestamp
my ($milliseconds) = @_;

# Although perl supports integer division, the scope of "use integer"
# is global and that would cause slope calculation become integer.
# Therefore, we use redundant division as below. floor() is possible but
# we don't use it here for cross-distribution compatibility
# (some perl distributions don't have that package installed)

my $res_h = $milliseconds % (60*60*1000);
my $hour = ($milliseconds - $res_h) / (1000*60*60);
my $res_m = $res_h % (1000*60);
my $min = ($res_h - $res_m) / (1000*60);
my $res_s = $res_m % 1000;
my $sec = ($res_m - $res_s) / 1000;
my $ms = $res_s;

return sprintf("%02d:%02d:%02d:%03d", $hour, $min, $sec, $ms);