Analysis of Haydn's "The Joke" 1st movement

PDF version: http://www.box.net/rssdownload/120026429/The%20Joke.pdf




Report of Seminar in Theory and Analysis

About the 1st movement of Haydn’s “The Joke”

Student: Kong Kao
Advisor: Prof. Christian Utz

This string quartet is the second one in the “Russian” quartets (Opus 33) which were written by Franz Joseph Haydn (March 31, 1732 – May 31, 1809) in 1781. The “Russian” quartets are done after the change of Haydn’s contract, which made him publish his own music without the permission of his employer. Charles Rosen agreed that the music is written in a completely new and special way.

In this report, we’ll focus on the 1st movement of “The Joke”.

The Exposition

The movement establishes its main key (E-flat major) in the opening 4 bars by a perfect authentic cadence. The opening 4 bars also show up as a period within which the previous 2 bars form the antecedence and the latter two forms the consequence. In these 4 bars we can find the basic figurations which are used all over the movement and I’ll label them as A and B (shown below). Though the B figures in the bar 2 and bar 4 are not exactly the same, the rhythm shows the similarity. So we can still say that the movement has all its material shown in just 2 bars of the opening.


Bar 4 and 5 expand the figure A in two ways. The 4th interval is broadened each time the figure occurs in Violin I (which I labeled as A2), and in the Violin II and the Viola the interval is decreased (labeled as A3). Though A3 would be considered as a note decorated by its down neighboring pitch, the rhythm of it make the listener feel the same swing of A, so I still relegate it as a variation of figure A.

The continuous 16th note on Violin I in bar 7 (which I labeled as A4) can be considered as a variation of A2 by deleting the last note of each 4-note group, so it’s still a variation of A, as shown below:
could be considered as

By stretching and use three variation of figure A, bar 5 to 8 could be considered as a contrasting period against bar 1 to 4. Though this period could be seen as the fragmentation of figure A, the half cadence at the end of it displays the impossibility of bar 1 to 8 to be a complete sentence. But as we listen to bar 9 to 12, which exactly repeats the opening 4 bars, we can easily figure out that bar 9 to 12 is the recapitulation of bar 1 to 4. Therefore, bar 1 to 12 is a small ternary within which bar 5 to 8 plays the role of “contrasting middle.”

Note that the exposition part of the small ternary, which I declared it to be a period, has only 4 bars. As we know that the standard antecedence of a period would have 4 bars and consequence 4 or 5 bars, what we have here in “The Joke” is smaller than that. But consider this: both the antecedence and the consequence end at the 3rd beat of the respective bar, instead of the 1st beat of the bars. These 2 non-ordinary phenomena make me suspect that maybe the metre should not be 4/4, but 2/4, in which way that each bar in the current version would be split into 2 bars, thus the period would have 8 bars and end at the 1st beat.

In many places of this piece, Joseph Haydn used the technique of overlapping to maintain the flow of the music. While comparing bar 4 and bar 12, which we thought to be exactly the same, we can find that on the Cello in bar 12 the figure B occurs exactly at the end of the figure B in Violin I. After Viola succeeds the figure again, figure B shows up continuously. In other words, Haydn use a period that consists of figure B to follow the small ternary, but the figure B has already occurred BEFORE the end of the small ternary. This overlapping technique may be the difference between the “Russian” quartets and Haydn’s earlier work Charles Rosen mentioned: A fluid form of phrasing, in which each motif emerges from the previous one without interruption. The following score shows only figure B in bar 12 to 15. Note that the PAC falls on the 3rd beat of bar 12, instead of the 1st time figure B occurs.

These bars also have the functionality to transpose from E-flat to its dominant key: B-flat. This is done at bar 15, after which figure B occurs only in Violin I. In other words, Haydn combined the end of the small ternary and the transposition together by using figure B occurs in different voices, and stayed stable for 2 bars (bar 15 and 16).

After 2 measures fulfilled by figure B, bar 17 and 18, which uses only the later half part of figure B, is the fragmentation of the previous 2 bars. The harmony succession also flows faster by the diminished rhythm in Violin II and Viola. Both the fragmentation in Violin I and the denser harmony form the intensity of the dominant harmony. This intensity is slightly held on bar 19 by the dotted quarter and goes on. In fact, bar 19 does not “release” the intensity but increases it. After introducing the new variation (the ornament “turn”) of a figure which would continue on bar 20, the cadence occurs finally on the 1st beat of bar 21. The occurrence of the ornament “turn” can also be considered the technique of overlapping which is mentioned before since the new element is shown BEFORE the cadence. Haydn used this technique to make the music flow without stopping. In fact, when I 1st time listen this piece, the feeling of the flow made me not noticing a PAC here!!

Bar 19, which could be considered just a linking part, has a special feature: The way it links bar 18 and the following materials is just like what links the antecedence and the consequence in the opening 4 bars. The melody in the beat 1 and 2 can be thought as a variation of: The up-going major 2nd melody inserted by a chromatic passing tone is the same at beat 3 and 4 in bar 2. If we oppositely think what’s in bar 2 is a variation of bar 19, then the “origin” of bar 2 and 3 could be: In this aspect, bar 3 and 4 can also be said “begin at figure A.” The characteristic of the consequence in bar 3 and 4 is much clear since the rhythm of it and the antecedence are exactly the same.

Bar 21 to bar 28 is an extension of the cadence, we’ll discuss later and compare it with the end of the recapitulation.

Bar29 to 32 could be considered as a codetta which forms the cadence in different registers each 2 bars. Haydn used only A2 here. Note that the last figure in Violin I is the same as the opening of the movement. Though in different keys, this intensifies the listener’s impression to the piece.

The Development

After repeating the whole exposition part, the music goes into a transition which transposes the dominant key (B-flat major) into A-flat major. The way Haydn used to transpose to a major 2nd below key is by the technique of “falling fifth”. viio/IV and V7/IV are used to transpose into the subdominant key, respectively in bar 33 and 34. Part of the antecedence of the opening period then occur almost the same as bar 1, but at the end of bar 35 shows up again in Viola. The “sub-phrases” (an idea which begins at figure A) overlap each other and occur in Cello and Violin I again. Check the following reduced score which retain only the theme. Haydn also used this part to transpose from A-flat major into f minor.

While astonished by the absence of the “sub-phrase” on bar 39, the music goes into E-flat major while the idea appears again. After just saying only part of the antecedence, the music finally frees the listener from the expectation of hearing the theme completely in the home key. Note the appearance of the home key stands for the “median return” in the development part.

As expected, the median return would not maintain too long. The theme is interrupted on bar 42 by figure A3 in Violin II and Viola. There seems to be a new “minor-2nd down” element in Violin I, but we can consider it as the inversion of A3.

From bar 42 to bar 49, we can find A3 and its inversion almost everywhere. In fact, we can still relegate the eighth notes followed by a quarter into A3, too, just like how we link the relationship between bar 2 and bar 19. I’m still thinking that the ornament “turn” in the Violins is also a variation of A3. In this aspect, bar 42 to 49 consists of A3 only.

So, bar 35 to 41 repeats the “sub-phrase”, and bar 42 to 49 repeats A3. We can say that Haydn used his material “densely” here in the development part since in each bar group there are only one material and the material’s variation. If you see group of figure A in bar 51 and 52 as A4 broken into different voices, you’ll find out that bar 49 to 52 consists of only A4.

To end the development part, Haydn used long-lost figure B in bar 54 to 56. Note that figure B hasn’t occurred in the development part until bar 54, except in bar 42. In fact, the occurrence of B in bar 42 is easily ignored by the listener since it’s already dissolved into the satisfaction of the appearance of the antecedence. So we can say that figure B occurs here for the 1st time in the development part, but in an incomplete form just like bar 17 and 18.

Unlike extended cadence in the exposition part, Haydn directly used a fast melody in Violin I following the group of figure B in bar 56. The music suddenly stops on bar 58 in a half cadence. Both the harmony and the time make the listener shocked for a silence which sustains a dotted quarter.

The theme appears at the time we are expecting the recapitulation part, but in a wrong key (c minor) instead of the home key (E-flat major). The false recapitulation releases the tension of the half cadence in bar 58 and makes the real recapitulation shows up in a smoother way. Note that Haydn used diminution on the rhythm in bar 61 and 62 to “slow down” the flow without changing the speed. Also note that c minor and E-flat major are related keys, which means that transposition can be done by enharmonically diminished seventh chord.

The Recapitulation

After ushered by the half cadence at the end of the false recapitulation in bar 62, the music goes into real recapitulation. The recapitulation is like the exposition except some features.

The small ternary in the exposition part does not show up completely in the recapitulation part. Bar 70 extends A4 in Violin II again and followed by a group of figure B. The group of figure B does not play the role of transposition here, so the “cross-voice occurrence” is not used, neither. (That is, figure B only shows up in Violin I here.) The linkage and the easily-ignored cadence appear in the recapitulation part just like in the exposition part, except the key.

The fortissimo in bar 79 appears like bar 22, but in a shocking harmony which contains D-flat. Even we would not expect a transposition in the recapitulation part, the pitch D-flat, which is not within the scale of E-flat major, strongly imply the music to transpose. We don’t know that the pitch D-flat is just used to form the harmony V7/IV, which leads to IV, until the music reaches V7 in bar 82. So I would say that Haydn played a joke here about the tonality.

Bars 80 to bar 86 have the same functionality as bars 23 to 28. But Haydn used material denser here than in the exposition. The 3rd and 4th beat of bar 84, and the 1st 2 beats of bar 85 form a sequence, which does not occur in the exposition. Note that the group of A4 in bar 70, which repeats Violin I of bar 69, can also be considered as an extension and intensified density in the recapitulation.

The codetta seems not the same, but we can still find some relationship by inversing figure A. We can say that the recapitulation varies from the exposition more and more as time goes by.

Conclusion

The following table shows the model of this movement.

Bar no.

Description

Key/Harmony

Exposition – Start with a small ternary followed by a long cadence

1~4

Exposition of the small ternary

Basic idea A and B occur

PAC in Eb

5~8

Contrasting middle of the small ternary

Three variations of A occur

HC in Eb

9~12

Recapitulation of the small ternary

PAC in Eb

12~16

Group of B

Modulation to V(Bb)

17~18

Fragmentation of B

V of Bb

19~21

Cadence

PAC in Bb

21~28

Extension of the Cadence

PAC in Bb

29~32

Codetta

PAC in Bb

Development – Use same material densely

33~34

Transposition

Bb=>Eb=>Ab

35~40

Chaos with new figures

Ab=> f =>Eb

41~42

Getting stable by the theme (octave higher)

Eb

42~49

Fragmentation of A3 and its variations

Eb=>Gb=> f

49~53

Variations of A2

f => c

54~56

Fragmentation of B4

V of c

56~58

Like bar 25~28 without returning the tonic chord

HC in c

Recapitulation – Vary from the exposition more and more as time goes

59~62

False recapitulation / Modulation

c => Eb

63~69

Same as the opening small ternary, but without the recap.

Eb

71~90

Like bar 15~32, but with other features

Eb

Reference
Charles Rosen - The classical style: Haydn, Mozart, Beethoven
William Drabkin - A reader's guide to Haydn's early string quartets
W. Dean Sutcliffe - Haydn: String quartets, Op.50
Christoph Wolff & Robert Riggs - The string quartets of Haydn, Mozart, and Beethoven

......
... read more

不會上網未必不能發達

作者: gary27 (小龜) 看板: joke
標題: 一則很重要的故事 鄉民一定要看
時間: Fri Dec 28 21:19:11 2007

有一個中年失業男子,找工作找了很久都找不到,

結果看到微軟在徵清潔工,就前去應徵。微軟的人

力資源主管在面試後問他:「你會不會上網 ??如果

你有被錄取,我們會公佈在我們的網站上。」

那男子回答:「對不起,我不會上網。」

人力資源主管:「不會上網還想來微軟應徵,你有沒有搞錯??」

說罷就把他趕了出去。

那男子失意之餘,摸摸自己身上僅有的十元美金,靈機一動

在商店裡買了一大袋馬鈴薯,然後開始挨家挨戶地去拜訪且

販售他的馬鈴薯,沒想到真的賣完了,且他賺了三十元美金。

於是他就靠著這種挨家挨戶拜訪的方式,慢慢地開始了他的創

業生涯,從數百元美金,到開設生鮮蔬果宅配公司,並建立了

很大的連鎖賣場,從此他成了億萬富翁。

有一天有個保險業務員去找這位億萬富翁拉保險,保險業務員

順口問了一句:「您會不會上網?? 我們公司的產品都在網路上

有很詳細地介紹。」

那位億萬富翁於是告訴了這位業務員:「我不會上網。」

保險業務員很訝異地說:「您身為億萬富翁,掌裡這麼大的事

業,竟然不會上網?」

這位億萬富翁於是告訴業務員他當年到微軟應徵清潔工的故事,

並說:「如果我當年會上網的話,我到現在還是個清潔工..... 」

這個故事給了我們三個啟示:
一、要到微軟應徵最好要會上網,不然你連清潔工都無法錄取。

二、不會上網未必不能發達,還是有機會當億萬富翁。

三、你看到了這篇文章,表示你會上網,

那你當清潔工的機會應該比變成億萬富翁大 ..

......
... read more

Re: [音樂] 自動作曲

作者: kong (Life of Music) 看板: P_LifeOMusic
標題: Re: [音樂] 自動作曲
時間: Fri Dec 14 03:40:34 2007

※ 引述《kong (Life of Music)》之銘言:
> http://kong.dorm7.nctu.edu.tw/ac/

(請找PHP檔)
> 還好目前還很難聽
http://kong.dorm7.nctu.edu.tw/ac/20071214.php

雖然規則還是很死板

不過加了點伴奏之後增加了不少可聽性

...至少可以平心靜氣地把100個小節聽完


本學期(就課業要求上)應該就到此為止吧

--
就算是這個世界 把我拋棄
而至少快樂傷心我自己決定
http://www.streetvoice.com.tw/kong0107/music

......
... read more

[大哭] 嫂子的教育....不能等....

作者: ongong (ongong) 看板: StupidClown
標題: [大哭] 嫂子的教育....不能等....
時間: Tue Dec 11 17:45:32 2007

話說昨天 嫂子休假在家

秉著中部賢慧女子的特性 她把家裡整理的乾乾淨淨

順便也將家裡不要的東西 一起清出去

她在倉庫看到了老爸的打獵工具袋(台北有飛鼠可以獵嗎??)

還有 生鏽到不行的番刀

這位貼心的台灣媳婦 想說 改天買新的給老爸

所以 就拿到門口放 等垃圾車來 一起拿去丟

就進去睡午覺

*********************************************文化衝擊 分隔線************

剛下班的老爸 看見了他的獵人袋和刀 跟垃圾放在一起

這種事 在"女性為尊"的傳統阿美族家庭

意味著 休夫......(我老爸是被招贅的)

老爸以為 是因為老媽昨天生氣他喝太多酒 生氣到要休了他

含著眼淚的老爸 就進門收了一點衣物 留下手機(阿母名下財產)

拿出所有的存摺簿 印章 提款卡 放在櫃子上

留了一張紙條 "謝謝妳照顧我 卡照 留"

然後就出門了.......跟著垃圾一起消失在門口.....(臨走不忘順便倒垃圾)

之後 老妹回家 看到櫃子上的東西

急得將大家叫回來 因為 老爸離家出走

然後 大家就出門找

一直到晚上12點 阿公打來 問我們發生什麼事??

才知道老爸回娘家 還躲在房間哭

經過一番推敲 才知道 是嫂子的貼心......Orz

老哥馬上開車載老媽回台東 帶她老公回家

老哥出門之前 拿了一千塊給老妹

跟她說 "買幾本阿美族的書 給我老婆看 她的社會科不及格....."

"不然 下次回娘家的會是我......"

差點 我家就變單親家庭........

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.133.200.132
※ 編輯: ongong 來自: 220.133.200.132 (12/11 17:47)

......
... read more

[驗傷] 近況

作者: kong0107 (隨生) 看板: echoField
標題: [驗傷] 近況
時間: Tue Nov 27 00:14:00 2007

也不能說是「音樂所跟我原本想的不一樣」

只是我現在的狀況確實是當初沒有料到的


如所料地鮮少彈到曲子的「情緒」的問題

有些課程上起來頗像大學部課程般地,解析著曲式

我看的出這首曲子在這邊有個終止式,那邊開始轉調

我知道七度解決到六度是對位法上很常用的技巧

可是我不知道這些跟是否能讓人感動有什麼關係


我試著把貝多芬【月光】第一樂章拿來分析

我找出了和聲進行、主題、動機、曲式

但是我還是不知道為何會喜歡這首曲子

明明它是如此單調又緩慢到幾近冗長的地步


我聽過竹師的老師分析舒曼的【夢幻曲】

我知道他如何運用減七和弦作裝飾

知道他藉由省略三音來減少平行調互換的突兀

也知道他的轉調方式

但是我在樂譜上依舊看不到他對妻子的愛戀


搞的現在連聽流行歌都只剩下歌詞的部份可以感到一些觸動

更不用說那些原本也很喜歡的純音樂了

原本是要來更了解音樂的

但至少現在已經陷入一種無法忍受調性音樂的地步

明明應該享受旋律、和聲、節奏變化的那個過程

我卻只期待著樂曲最後的主和弦,然後遺忘


於是我不小心開始接受了現代音樂

那沒有調性和固定節奏,幾乎是只講究著詭異音色之間和奇怪演奏方式的組合

把抹布和三角鐵放進鋼琴,或是把吉他當作管樂、豎琴當作擊樂

這種不知道該說是本末倒置還是變相的畫地自限的行為

就好像是把藝術變回「看不懂」的愚民政策

知道自己在幹什麼的作曲家已經不多,知道曲子在幹麻的演奏者就更少,更不用說聽眾了

而我不小心開始只聽的下這種聽不懂的東西

就好像是第一次看到牛糞而想要靠近觀察的都市小孩似地,對於這樣的自己感到恐懼

我還是覺得音樂應該獻給大眾,讓大多數人一聽就感動

如果是只想讓自己感動的東西,雖然我對藝術的價值觀允許這種東西的存在

但既然不奢望別人聽懂的話,就乾脆不要發表了吧

我擔心再也找不到對於音樂的憧憬

即使大概可以猜到很多人都會說這只是一個過度期

---
語無倫次....

--
只要抓住他那根尾吧

就可以讓他服服貼貼的.....

--
※ 發信站: 批踢踢兔(ptt2.cc)
◆ From: 140.113.35.20

......
... read more

Nintendo 64 Kid Remix



這個影片可以看到很多東西,包含價值觀、禮物、教育、創意..........
... read more

屬於清華的情歌

話說中秋連假我故意沒有回家,想說要在學校好好看這兩週下來各課程發的講義,結果時間都給嗜睡蟲吃掉啦(依舊一天要睡10小時以上)。所幸在連假之前拿到了所上琴房的密碼,於是就一天跑它個一兩回,每次玩個一兩個小時。說來也把FF7 - Cid's Theme練的差不多了,原本想趁勢把J.S. Bach - Well-tempered的c minor prelude也練一些,結果發現他不如C major prelude那樣一次只有一個音(我視譜很差的呀),結果只背起了前四個小節.....orz


後來在nthu板(無名小站的NTHU_Talk)看到beefnoodle的「[TALK] 我好想清大 哈」一文,想起了剛開學時因為不習慣交大的校園而一直想逃回清大的自己。其實兩週下來也已漸漸不會擔心在校園中迷路或是上課聽不懂得的問題-即使問題依然存在,但已不會過分在意。那麼說來,我可以「離開」清大了嗎?


於是昨天不如前幾天地談起了流行歌,不看五線譜的亂彈-我目前也只限C大調-特別是彈到羅亦耀的清華情歌之時居然帶了點激動。也不知是不是「外國的月亮比較圓」的心理,還是只是為了和別人溝通,即使覺得【清華情歌】有很多的缺點,仍越來越覺得【要不要到湖畔逛逛】並沒有讓自己比較喜歡。


總之,昨天下午從琴房出來後就一直想著要錄錄看鋼琴版的【清華情歌】。解決了所上公告後台網頁和逢甲大學那邊的問題,寫了一點QuickBasic之後,在午夜12點我背著筆電走出寢室。跟前一天在凌晨一點半離開時對於鬼怪的恐懼不同,這次大概是有著熱切想要做的事情而甚至在琴房打了赤膊(因為冷氣很吵,但不開又很熱..)。


【要不要到湖畔逛逛】是臨時才想要錄的,再加上原曲本來就沒有太多變化,所以聽起來會比較單調。



清華情歌(鋼琴版)

大一時錄的歌唱版本

要不要到湖畔逛逛(鋼琴版)

大三參加金梅獎的歌唱版本......
... read more

Minuet 01

http://tw.streetvoice.com/music/user-song.asp?au=26482
硬是點了董昭民老師的作曲副修,不過在開始之前總要給老師看看作品。
說實話其實並沒有做太多檢查,而且很多地方明明是想要刻意作卡農式的模仿,卻因為沒有好好思考而搞到只好用安全的平行十度。
雖說是寫Minuet(小步舞曲),不過沒什麼舞曲的感覺。
譜:http://www.box.net/rssdownload/94947358/Minuet%2020070922..pdf......
... read more

生活的節奏

暑假無聊在房間裡亂彈/錄下的,看檔案的時間應該是八月一號吧,話說我已經忘記和絃進行是怎樣了
MP3下載

小時候 爸爸告訴我 要好好唸書能過好生活
小時候 媽媽告訴我 做錯沒關係只要能改過

可是我不懂 這麼多的煩憂 不嘗試怎麼知道結果
長大後發現 書本裡的內容 不去做根本不會懂

啊哈 生活的節奏 有朋友一起作伴 享受生活
啊 生命的烈火 多接觸觸碰 把世界體會過

啊 努力去感受 封閉的心找不到快樂源頭
啊 要學著放手 就算付出沒結果也是種收穫
......
... read more

森林

我來到一片茂密而充滿蟲鳴的森林
在這裡,每棵樹都長的不一樣
有的胖,有的瘦
有的高大挺拔,有的拐彎抹角
有的雄壯威武,有的婀娜多姿

我爬上其中一株,想遙望那應該存在的盡頭

我想碰觸這樹的每一片葉
但那葉又多又茂,我伸出雙手只能碰得雙目所及

我想看盡每一棵樹,於是一棵一棵的爬
但笨手笨腳的我總常遇見爬不上的樹

昨天爬過的樹,今天看來竟是如此陌生
什麼時候才能對這樹林瞭若指掌?
......
... read more

早晨水龍頭先要放放水

作者: chliu (討好每一天) 看板: echoField
標題: [知識] 早晨水龍頭先要放放水
時間: Mon Sep 3 16:37:39 2007

早晨水龍頭先要放放水

  早晨人們起床後的第一件事往往是擰開自來水龍頭洗臉、刷牙、做飯。殊不知,剛放出來的水中可能隱藏著"健康殺手"。

  停用一夜的水龍頭及附近水管中的自來水是靜止的,水中的殘留微生物會大量繁殖,其中可能就有"軍團菌"。1976年,美國一群退伍軍人在費城一家旅館中舉行年會。會後一個月,與會者中221人得了一種"怪病",34人相繼死亡。研究證實,其元兇是存在於水龍頭和水槽水樣中的一種致病微生物———軍團菌。醫學界後來把這種病命名為"軍團病",患病者若不及時治療,死亡率可高達25%~30%。最近20年來,軍團病在許多國家爆發、流行,已經引起了醫學界的廣泛重視。
  此外,經過一夜停止不動的水,會與金屬管壁及水龍頭金屬腔室產生水化反應,形成金屬污染水,這就是早晨第一次放水時往往會見到一些反常現象,比如水色發黃、發白、或者發渾的原因。另外,我們的水源大都為地表水,受洗滌劑等有機物污染較大。一些有機化合物會和通入水中的消毒劑———氯氣反應生成鹵烴化合物,如三氯甲烷。這類物質有潛在的致癌性。
  在早晨放出的水中,上述安全隱患相對來說比較大。這種水含有對人體有害的物質,不宜飲用,也不宜用來刷牙、漱口,可先放出一臉盆水左右,方可接水使用

--
※ 發信站: 批踢踢兔(ptt2.cc)
◆ From: 218.172.206.38

......
... read more

張懸 - 兒歌

兒歌
作詞:張懸 作曲:張懸
Key: Db, Boy: A, Start: 3
4 5 1 4 5 1
還不確定你是否也喜歡氣球 路邊常常在發的那種
如果受了傷就喊一聲痛 真的 說出來就不會太難過
還不確定你是否也喜歡氣球 反正又還沒聽過你說過
如果受了傷就喊一聲痛 真的 說出來就不會太難過

4 5 3m 6m 4 5
我和你約好 養隻黏人的小貓 和一隻大的溫柔的狗狗 (1)
不去想自由 反而更輕鬆 願意感動 孤 單 不 忐 忑
我們都覺得 成功沒那麼嚴重 做自己反而比較心安理得
不去想自由 反而更輕鬆 願意感動 就 是 種 享 受

4 5 1 17
生活 生活 會快樂也會寂寞
4 1 4 5 1
生活 生活 明天我們好好的過

應bango要求..:P
其實是剛好目前吉他都降半音了才抓的順利......
... read more

楊乃文 - 你懂嗎

你懂嗎
作詞:林暐哲 作曲:林暐哲
楊乃文:G, 地下鐵:Gb, Boy: C, Start: 1
1 1maj7 1 1maj7
看著遠方 哪裡是我的希望 看著遠方 我是否還在夢想
2m 2m+7 2m7 2m+7 5
我不知道 我會去什麼地方 我不知道 還會有多少迷惑 失望

1 1maj7 1 1maj7
微弱的光 在雨的夜裡閃著 微弱的光 在夜的窗口亮著
2m 2m+7
我不知道 誰會來牽我的手
2m7 2m+7 b6 1m b6 1m
我不知道 空虛的日子還要過多久夢要做多久
b6 4 4m 1
我不想夢醒以後 依然是受傷和難過的我

2m 2m+7 1maj7 1
別說你會懂 你懂的不是我的心
別說你會懂 我給你的是我的心
2m 2m+7 2m7 5
你懂嗎 你懂嗎

江柏廷之歌..XD
總覺得不是b6,可是又不像是#4dim7......
... read more

林曉培 - This is

This is
作詞:許常德 作曲:梁翹伯
Key: G, Boy: D
1 5/7 4
This is key 但門是開著
This is dog 牠舔我小手
1 5/7 4
This is room 你和她抱著
This is you 你非常難過
3m 2m 5
This is heart 我卻不許它再喊痛
This is she 她是我最好的朋友

6m 3m 4 1
你和她 只是擁抱 應該不會廝守到老
5/7 6m 4 5
就算吻 也只是禮貌 沒困擾

1 3 6m 3m 4
我拒絕 先快樂然後寂寞 別告訴我那是你太脆弱
我接受 你要她也想要我 像每個貪心的人的愛情
1 6m 2m 5
愛算什麼 你拿回你的藉口 (6m)
總要更多的寂寞需要擺脫 你走吧...

印象中我當初並沒有馬上發現文法錯誤......
... read more

林志炫 - 我的眼留下你的淚

我的眼流下妳的淚
作詞:楊孜瑩 作曲:史丹利 編曲:Tonysmith
Key: D, Boy: C
1maj7 2m7 3m 4maj7
大概是愛情這杯酒太烈 我才會一喝就醉
如果這段情遲早要毀滅 不要再假裝沉醉
我要妳給的不祇是安慰 既然妳覺得憔悴
我明白愛情這杯酒太烈 從此後不再喝醉

2m7 5 3m 6m 2m 511 5
看不清 妳不過是想找個人來陪
告訴我 何必在乎我會不會心碎
何不讓 妳的淚 來說清楚這一切
傷透心 我已沒有 相同的愛給誰

1maj7 3m7 6m 4maj7 2m7 5
#我的心承擔了妳的罪 我的眼流下妳的淚
 我的愛贖回了妳的罪 我的眼流下妳的淚
1maj7 3m7 6m 2m7
 妳總是忍住後悔 說妳只是太累
 愛若是不夠完美 曾經給的承諾
2m7 5
 把愛情的責任 由我一個人來揹
 管它是否違背 妳如果想飛就飛
Repeat #
......
... read more

如何在ie下面debug

作者: cole945 (躂躂..) 看板: Ajax
標題: Re: [問題] 如何在ie下面debug
時間: Sun Aug 19 01:22:27 2007


在IE的 Intenet Options 的 Advanced 頁面設定裡有個
"Disable script debugging"
預設是勾起來的..
如果有勾的話, 就算有錯誤也不會顯示~ 請把他取消掉..

如果你還需要更進階的debug功能的話再往下看~
不然就這裡你就可以按 <- 離開了 囧"

IE還可以透過Microsoft Script Editor(簡稱MSE)或Visual Studio(簡稱VS)來偵錯
(包括Step by step執行 或是變數監看等等..)

如果有灌 VS 2002以上的版本會自動與 IE 整合,
遇到錯誤選 yes 進行除錯並選擇 Visual Studio就可以了~
可是VS有點肥:x 正常寫Javscript的人應該不會想用那個除錯..

MSC則是附在Office/Frontpage裡(好像XP的版本以上就會有了..)
(應該是要含Frontpage的office版本或單Frontpage也會有)
先確認你的電腦是否已安裝 MSE,
打開 IE 在功能表的 View->Script Debugger->Open
如果有 Misrosoft Script Editor 那就是有安裝了

若沒有的話拿出你的Office補安裝,
選擇 新增/移除功能 -> 選進階自訂 ->
在 Office Tools 的分類下面應該會有個 HTML Source Editing
全部都勾起來 (Frontpage其實可以不用灌, 有勾這個就夠了)
再重開IE就可以了~

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.139.142.115

......
... read more

張惠妹 - 勇敢

勇敢
作詞:陳嘉文/夏木 編曲:洪敬堯
Key: G#->A, Boy: C
1 5/7 4/6 1 5/7 6m 2 4 5
黑暗中 寂靜伸出的雙手 冰冷的空氣像火 害怕又收手
路太遠 誰的眼神能永遠 忘了跟你一起走 怎樣才會懂
誰說過 愛會讓人不自由 所以你要我等候 換你的追求

4 5/4 3m 6m 2m 4 5
記憶裡 愛應該總是溫柔 有了這一切 才能不怕黑夜
有太多 快樂自私做藉口 你讓我最後 把心痛當擁有

1 5/7 3 6m 3m 4 5
是我勇敢太久 決定為你一個人而活 不能說出口 那麼折磨
1 5/7 3 6m
勇敢了太久 城市充滿短暫的煙火
5 #4dim7 2m 5 1
無處躲  照亮了沉默 明白是(愛原來)寂寞

4 5 1 6
喔~ 夜太黑 看不見 你在我身邊
4 1 2m 1 5
心傷悲 淚水失去防備 HOH~

阿妹的歌都很難抓 T_T
我覺得我迷上6m 5 #4dim7的進行了......
... read more

林志炫 - 只為你唱

只為妳唱
作詞:樓南蔚 作曲:林志炫
Boy: Em, Start: 6
6m 5 4 3
原諒我不懂包裝ˉ讓話語甜如蜜糖
有些歌陪我成長ˉ多少次紅了眼眶 4 3 6m
多心疼你的堅強ˉ虧欠你柔軟心腸 把感觸說盡也紙短情長

1 5 6m 3
所以寫首歌送給你ˉ這首歌只為你而唱
1 5 3
用我最溫柔的力量ˉ唱出婉轉激昂
6m 3 4 3 4 1 3
當回憶慢慢被遺忘ˉ永遠在心上 這故事會不停重覆地在播放

有些歌陪我成長ˉ多少次紅了眼眶
有些人怎麼能忘ˉ閉上眼就自然會想
不論在什麼地方ˉ但願它也能同樣ˉ觸動你心底最深的地方

6m 5 4 3
讓每個受傷孤單的靈魂ˉ可以釋放
......
... read more

劉德華 - 親愛的媽媽

親愛的媽媽
作詞:劉德華 作曲:林宥佐 編曲:洪晟文
Boy: G, Start: 5
1 5/7 6m 3m/5
親愛的 你好嗎 不知不覺地三年沒回家
親愛的 聽我話 冰箱裡的菜太久別吃了
4 5 1 5/7 6m 4 5
寧靜的生活 如常嗎 請小心身體別太忙
晚上外出時 多穿呀 想念我就給我電話

1 5/7 6m 3m/5
媽媽呀 你知道嗎 現在的生活過得還算好
媽媽呀 你知道嗎 離家的小孩心情很複雜
4 1 3m 6m 4 5
交的朋友很可靠 說的盡是真心話 請不用為我太牽掛
為了爭氣往上爬 累了又想躲回家 多希望永遠長不大
重回昨日的懷抱 做回妳的小娃娃 我 最 親 愛 的媽媽

副歌的那個3m不知道為什麼讓「說的盡是真心話」那句
顯得比心虛還要更沒有自信......
... read more

看書

昨晚老爸問我有沒有興趣購買焦元溥的【遊藝黑白-世界鋼琴家訪問錄】,我很下意識的拒絕了,推託之詞是「如果有興趣的話,我打算先向圖書館推薦,看過且真的有興趣之後再買。」(話說清大圖書館的推薦書刊通過率好像不低,只是有「非課程相關書籍須於出版三個月後方能推薦」規定。我上次推薦的【最新健美運動詳解】不到一週就發訂了)
不過在上次白繼尚老師送我余秋雨的【人生風景】的時候,是有開始想要「再次」重新審視自己「不喜歡看書」的個性,事實上我連面對電腦的相關書籍都很沒耐性。之後要念的是藝術與應用,需要思考的將漸漸朝向沒有標準答案的瑣碎文字,所以是該試著念些書了。印象中芳瑜學姊(似乎是因為主修音樂學的關係)很常帶/看一些書,有空請教一下怎麼選書好了:P
......
... read more

黎明破曉

黎明破曉
http://tw.streetvoice.com/music/user-song.asp?au=24107
Key: F#m

6m 5 2m 3 6m
#既然我有了心跳 請陪我到天涯海角
6m 5 2m 3 6m
像孩子般跳又跑 沒有翅膀也要把夢想抓牢

前奏: 6m 4 6m 4 6m 5 4 3 6m 5 4 3

6m 4 6m 4 1 3
別問我會不會後悔 我早已經相信永遠
6m 4 6m 4 1 3
你的熱情會不會熄滅 在那充滿活力的泉源
2m 5 1 6m
@一個銅板決定 水晶球測不出的命運
2m 5 1 3
擦乾所有淚滴 傷痛變成成長的回憶

6m 5 2m 3 6m
$就在黎明將要破曉 流星劃過一個線條
6m 5 2m 3
窗外的山雲霧繚繞 這一生讓我奔跑

Repeat #
間奏: 6m 5 4 3 6m 5 4 3
Repeat @#$#$

6m 4 6m 4 2m 3 6m
沒有翅膀也要把夢想抓牢

尾奏:同間奏
......
... read more

余秋雨 - 人生風景

我看到,被最美的月光所壟罩的,總是荒蕪的山谷。
我看到,被最密集的「朋友」簇擁著的,總是友情的孤兒。

我看到,最興奮的晚年相晤,總不外事席是敵手。
我看到,最怨憤的蒼老歇息,總是針對著早年的好友。

我看到,最堅固的結盟,大多是由於利益。
我看到,最決絕的分離,大多是由於情感。

我看到,最容易和解的,是百年血戰。
我看到,最不能消解的,是半句齟齬。

我看到,最低俗的友情被滔滔的酒水浸泡著,越泡越大。
我看到,最典雅的友情被矜持的水筆描畫著,越描越淡。

我看到,最早到臨終床前的,總是小人。
我看到,最後被告知噩耗的,總是摯友。


這是今天趁衛道的大學博覽會而回去時,找白繼尚老師後,他說是祝賀我考上交大音樂所,送我的書-余秋雨(話說他居然有在Sina的Blog的【人生風景】的封底文字。我還沒有看內容,但我只在第一句的時候有比較如以往的思考。
  1. 我不喜歡用最高級,還有「總是」這種一竿子打翻一船人的詞。
  2. 是因為荒蕪的山谷才能夠襯托美麗的月光吧?
  3. 承上,如是的反思是否可以套用到生活中的哪個價值觀上?

但是第二句我看不懂。第三句開始讓我感到好奇,該不會都是這樣的句子?

如果是一般的文章,看到兩句同樣的句型,我就會開始厭倦,但我這次服輸了。

接下來,仍是我以往就有的思緒,「知道了又如何?」有太多的名言我們也不是要刻意把他們當耳邊風,而是對於現況的臣服。就好像我現在如法炮製說一句「我看到,最令人無奈的,總是那些至理名言」,讀者們可能一時半會也找不到漏洞(事實上我還沒找到,目前也認為沒有)。

所以,那是我對這個封底所想要表達的事情的結論(即,這封底的文字的目的之中,除了「吸引讀者去買」的另一部分),就是表達「我看到,最令人無奈的,總是那些至理名言」。至少對我來說是如此的。
......
... read more

信樂團 - 天高地厚

已經不知道是哪一年抓的了,整理譜的時候找到的


天高地厚
作詞:武雄 作曲:詹凌駕
Key: B, Boy: G, Start: 3
1 5 6m /5 4
*你累了沒有 可否伸出雙手 想擁抱 怎能握著拳頭
#準備好沒有 時間不再回頭 想要飛 不必任何理由
2m 3m 4 1 4 5
 我們還有很多夢沒做 還有很多明天要走 要讓世界聽見我們的歌
不管世界盡頭多寂寞 你的身邊一定有我 我們說過不管天高地厚

4 5 1 5m7/2 17/3 4 5 1 5m7/2 17/3
△想飛到 那最高最遠最灑脫  想擁抱 在最美麗的那一刻
想飆到 那最高最遠最遼闊 想唱完 那最感動的一首歌
4 5 1 5/7 6m 4 5 1
 想看見 陪我到最後誰是朋友 你是我最期待的那一個
沒看見 那天高地厚不肯放手 因為我有我想要的朋友
你是我最想要的朋友

4 1 4 1
可以一起闖禍一起沈默一起走 可以一起飛翔一起淪落
2m 3m 4 5sus4 5
不管天高地厚陪著我 陪我一起大聲狂 吼
......
... read more

林志炫 - 往事借過

往事借過
作詞:厲曼婷 作曲:Sung Jin Ko
6m 3m 4 1
我以為遺忘就可以讓人擺脫傷痛ˉ最後是夢想被趕走
4 3m 6m 5 #4m7-5 4 3
那陣風ˉ吹過ˉ吹痛我耳朵ˉ它說它只是路過
6m 3m 4 1
找不到讓我心跳亂了節奏的兇手ˉ我親口答應讓她走
4 3m 6m 5 #4m7-5
抬起頭ˉ看哪ˉ荒蕪的天空
4 2m 5 5
青春是否燃燒過 眼淚是否流過別問我

1 3m 4 3m 6m 5 #4m7-5
我說往事借過ˉ她並不夠愛我 我根本別無選擇
我說往事借過ˉ草率無知懵懂ˉ也不算滔天的錯
4 3m 2m 5
我只是平凡渺小虛榮ˉ拒絕心痛ˉ不甘示弱 6m
雖然我眼淚滾燙如火ˉ恨不能夠ˉ時光倒流ˉ愛到痛

那個 6m=>5=>#4m7-5 很帥,比 1=>5/7=>6m 漂亮多了......
... read more

記錄使用者瀏覽時間和下一頁

在做清大科管所的clay0529學長BuzzShare(可以自己選擇廣告的插入廣告服務,Mr.6有分享過喔:P)的時候用了這樣的方法,在此分享。簡言之就是在使用者要離開的時候引入一個檔案囉,麻煩的是要怎麼得知「下一頁」是什麼:P。

步驟一:當然要先紀錄進入頁面的時間,用now = new Date();
start = now.getTime();
就可以了

步驟二:寫一個要在離開頁面的時候執行的function。因為你不一定會想改(或說不一定能改)<body />的onunload標籤,而直接把window.onunload覆寫掉也不是個好辦法(因為可能已經有設定別的東西要執行了),所以最好是用attachEvent或是addEventListener,可以參考【Javascript: 附加 onload 事件】。function whenLeaving() {
var now = new Date();
var stayTime = now.getTime() - start;
addJavaScript('abc.php?stayTime=' + stayTime);
/*addJavaScript()是我之前寫的一個可以加入JavaScript的function(原本主要是拿來做XSS用的)
要注意的是不可以用document.write來生成<script />,否則會有想是換頁的情形發生
喜歡的話,用CSS(用我的addStyleShett)甚至是圖片也可以
至於如何不使用document.write來生成物件,可以查一下document.createElement()
另外,abc.php到底要output什麼出來就隨便囉
我自己是都留白(單純只把資料寫進資料庫,不做任何輸出)....*/
}
if(window.addEventListener)
window.addEventListener('load', whenLeaving, false);
else if (window.attachEvent)
window.attachEvent('onload', whenLeaving);

/*其實可以另外寫一個function來做這件事*/
function addEvent(obj, event, func) {
if(window.addEventListener)
obj.addEventListener(event, func, false);
else if (window.attachEvent)
obj.attachEvent('on'+event, func);
}


原則上到這裡就可以記錄使用者停留時間了。

步驟三:修改<a />的onclick,取出接下來要進入的頁面的連結
我原本以為下面這樣就可以了tagA = document.getElementsByTagName('a');
for(i = 0; i < tagA.length; i++)
addEvent(tagA[i], 'click', function(){next = tagA[i].href;});
不過至少在IE下會發生i值變動的問題。幸好這個問題在我之前在無名的Homepage板問過之後,星周(starjou)學長有解答過(簡言之就是用區域變數來繞過全域變數的問題),所以迴圈的部份改成下面這樣:for(i = 0; i < tagA.length; i++) {
function a() {
var j = i;
addEvent(tagA[j], 'click', function(){next = tagA[j].href;});
}
a();
}


步驟四:再修改一下步驟二的函數
把原本要引入的檔案多加上「下一頁」的參數囉addJavaScript('abc.php?stayTime='+stayTime+'&nextPage='+next);

這個方法原則上也可以用XSS的方法來做(事實上BuzzShare的部份我就是這樣子做)。另外就是我目前沒有處理表單送出的部份(頁面停留時間仍然可以記錄,但是「下一頁」就無法判斷了),當然表單還是可以用修改onsubmit的方式來修改,但是要注意的是有些表單(其實<a />也有可能)會被其他的JavaScript更改傳送頁面,所以實做上並不一定可以得知實際被傳送的頁面。(其實我是有想到解決辦法啦,但是有點難解釋,而且也沒有把握一定可行)

另外就是attachEvent()和addEventListener()的問題,由於前者會先執行最後被指定的function,所以有時後有點麻煩,此時可以用另一個方法解決這個問題(後來仔細想想,這個方法好像比較好...orz)var oldOnload = window.onload || function () {};
window.onload = function ()
{
oldOnload();
/* Do Something... */
}


後記:我真的希望我可以多花時間在音樂上面。......
... read more

歐陽菲菲 - 感恩的心

感恩的心
作詞:陳樂融 作曲:陳志遠 編曲:Terence Teo
1 3m 6m 1/5 2m 5
我來自偶然 像一顆塵土 有誰看出我的脆弱
1 3m 6m 1/5 2m 5 1
 我來自何方 我情歸何處 誰在下一刻呼喚我

2m 5 1 6m 2m 5 1
#天地雖寬 這條路卻難走 我看遍這人間坎坷辛苦
3m 6m 4 5
 我還有多少愛 我還有多少淚 要蒼天知道 我不認輸
1 6m 2m 511 5
△感恩的心 感謝有你 伴我一生 讓我有勇氣做我自己
1 6m 2m 5 1
 感恩的心 感謝命運 花開花落 我一樣會珍惜
......
... read more

這兩天

昨天去苗130還願(當初我根本沒去,不過既然爸媽去拜過了,跟去一下也不錯),那瞭望台的風景不錯,發現自己雖然家住16樓但還是會怕高,想起高中坐大怒神時根本不敢張開眼睛的情況。
回來之後就在兩個網站之間徘徊,去Street Voice申請了帳號也把幾首歌傳了上去,整體而言比滾石可樂好多了滾可的系統也10年了吧?? @.@),不過速度好像也沒有比Blogger快多少(我想是因為我放了Prototype.js才讓Blogger變慢的)
另外就是做了一個AddrBalance(亂取的名字),主要是通訊錄和記帳功能,不確定是不是弄得夠安全(懶得做防呆),總之目前先po在無名的個板(P_LifeOMusic)和PHP板,如果沒有被Hack的話再po到PTT給大家用看看..cc......
... read more

算數

發信人: dogan.bbs@moca.csie.chu.edu.tw (帥帥潘裕文)
看板: Joke
標 題: 算數
發信站: 摩卡小築 (07/24/07 23:20:30 Tue)

老師:假如你已有1塊錢,再向你爸爸要1塊錢後,你總共會有多少塊錢?

海倫:1塊錢。

老師:你根本不了解怎麼算術。

海倫:你根本不了解我父親。

--

Hola! Yo soy dogan, http://www.wretch.cc/album/wind52810
--
※ Origin: 摩卡小築 <moca.csie.chu.edu.tw> 
◆ From: 220-131-137-216.HINET-IP.hinet.net
 Aaronier:推薦這篇文章 07/25 19: 8
ihady:推薦這篇文章 07/26 01:36
dupeipei:推薦這篇文章 07/26 11:58
mania:推薦這篇文章 07/26 13: 1
topming:.......因為他爸爸.......是嗎? 07/27 10:10
cpsh411137:推薦這篇文章......
... read more

PHP: array2url

我很喜歡用multi-dimensional array來傳送表單資料(印象中在ASP不能直接這樣用),可是這樣的東西在做分頁界面的時候很難還原成URL,所以就寫了一個array2url:
function array2url($arr,$main='') {
$tmp = array();
foreach($arr as $key=>$val) {
$prefix = $main ? sprintf('%s[%s]', $main, $key) : $key;
$tmp[] = is_array($val) ? array2url($val, $prefix) : "$prefix=$val";
}
return implode('&',$tmp);
}


範例: $abc = array(
'ohmyhoney' => array(
'recede' => 941505,
'tbex' => array(
'school' => 'nctu',
'department' => 'cs'
)
),
'bango' => 'banco'
);
echo array2url( $abc );

結果:ohmyhoney[recede]=941505&ohmyhoney[tbex][school]=nctu&ohmyhoney[tbex][department]=cs&bango=banco

所以之後就可以: $arr = $_GET['arr'];
unset( $arr['page'] );
for( $page = 1; $page <= $amount / $records_per_page; $page++ )
printf(
'<a href="http://www.blogger.com/webpage.php?%s&page=%d">第 %d 頁</a>',
htmlentities( array2url( $arr ) ),
$page,
$page
);

比較討厭的是因為寫成recursive function,所以連結的部份要符合W3C標準的話,要自己再加上一個htmlentities()
另外還有個狀況是如果是還原自$_GET的話仍可能和$_SERVER['REQUEST_URI']不一樣,如a[]=3會變成a[0]=3,不過好像就只是網址變長而已,並不影響PHP的運作(但是仍要小心網址因此而太長而超過HTTP的限制)

Update(2007-07-26 22:40):
不過之後darkhero直接踢破說PHP5之後其實有http_build_query()可以用(雖然因為RFC 1738的關係,空格的編碼方式不同)...orz......
... read more

一個人的慶功宴

MP3下載
清華電台2004年暑訓的內容是要以製作MV來練習拍攝運鏡和數位剪接,結果在一次yya和landen開玩笑的狀況下就說了要寫這麼一首[一個人的慶功宴]

一個人的慶功宴
曲:隨生
詞:cinsu、iamsmart

走過的路太遙遠 漂泊的心不再漂泊
怎會有一天 只有一個人 在高點
明天的我仍繼續 漂泊的心又再漂泊
直到有一天 回頭看不見 自己的夢

握緊雙手只想不後悔 拼命去追有誰能了解
撫著難以痊癒的傷口 別要問我究竟對不對
就算放開一切去面對 無法制止心中的眼淚
看著無情散去的人群 只能一人孤獨的慶功宴

夢想太高太遠太難追 背負太多太重太疲累
只要堅持理想永遠不幻滅
海闊天空總會有一天
......
... read more

室內公共場所全面禁煙

孫越在推「室內公共場所全面禁煙」
不過我覺得在抽菸還是合法的狀態下
這樣相當於扼殺了抽菸者享受的權利

並不是說公共場合的其他人有受二手菸毒害的義務(我自己很討厭二手菸,雖然已經上癮了),而是公共場所有義務為所有人解決二手菸的問題,如果二手菸是個無法解決的問題的話,那麼則應該將抽菸介定為危害社會安寧的違法行為


跟性交易一樣..過猶不及....
我反而不去接受所謂的折衷辦法呢..

......
... read more

Kong's Website Template

http://oz.nthu.edu.tw/~u921510/siteTemplate20070724.7z

弄了一下午到現在
其實沒什麼新東西,就是把以往知道的東西湊一湊
以後要架新的網站的時候就從這邊開始吧

Smarty 2.6.18Prototype.js 1.5.1.1 都包進去了
不過prototype.js目前是盜連的..cc

自己建了一個class MySQL,很陽春但夠我用
上次弄BuzzShareXSS時寫的createElement和addStyleSheet也包進去了
Element.addMethods(
{
createElement: function (tag,attr,append) {
var obj = document.createElement(tag);
if(typeof attr == 'object' &&amp;amp; attr != null)
for(var i in attr) obj[i] = attr[i];
if(typeof append == 'string') append = document.getElementById(append);
if(typeof append == 'object' &&amp;amp; append != null) append.appendChild(obj);
return obj;
},
addStyleSheet: function (css_url) {
this.createElement(
'link',
{
rel: 'stylesheet',
type: 'text/css',
href: css_url,
media: 'all'
},
document.lastChild.firstChild
);
},
addJavaScript: function (js_url) {
this.createElement(
'script',
{ type: 'text/javascript', src: js_url },
document.getElementsByTagName('head')[0]
);
}
}
);

不想設定include/config.php中資料庫連線設定的話
直接把MySQL的連線取消就可以用了

其實有點想就這麼經營起一個toolbox去弄個SourceForge或是OSSF之類的
不過寫文件實在是太麻煩了,而且我志不在此..cc......
... read more

用單一function讓PHP登入SMTP Server寄信

PHP內建的mail()功能比較陽春,雖然能夠透過ini_set()來指定SMTP Server,但是只能支援不需登入的那種模式。如果需要用指定的SMTP Server,即不想或是不能用Gmail的話(appleboy建議我用libcurl還給了我一個連結,不過我沒細看)PHP官網上有很多前輩們的討論和貢獻(這個功能的討論大多是在Function Reference的Mail Functions底下,而不是mail()的頁面)。
以下的code是我從Rob的文章裡面稍作修改的(附帶一提,前面那個聯結交大的鏡像站,詭異的是PHP本站的那一篇居然沒有色碼變色!!??),搜尋一下$param就知道可以設定哪些東西了(至於哪些是一定要設定的就請自行判斷吧)
function authMail( $param ) {
/* your configuration here */
$port = isset( $param['port'] ) ? $param['port'] : 25;
$timeout = isset( $param['timeout'] ) ? $param['timeout'] : 30;
$charset = isset( $param['charset'] ) ? $param['charset'] : 'iso-8859-1';
$login = isset( $param['username'] ) && isset( $param['password'] );
$nl = "\r\n";
$socketLength = 4096;
$localhost = "127.0.0.1"; //this seems to work always??

//connect to the host and port
$smtpConnect = fsockopen( $param['smtp'], $port, $errno, $errstr, $timeout );
$smtpResponse = fgets( $smtpConnect, $socketLength );
if( empty( $smtpConnect ) ) {
$logArray['connection'] = "Failed to connect: $smtpResponse";
return $logArray;
}
else $logArray['connection'] = "Connected to: $smtpResponse";

//say HELO to our little friend
fputs( $smtpConnect, "HELO $localhost$nl" );
$smtpResponse = fgets( $smtpConnect, $socketLength );
$logArray['heloResponse'] = $smtpResponse;

//start a tls session if needed
if($param['secure']) {
fputs( $smtpConnect, "STARTTLS$nl");
$smtpResponse = fgets( $smtpConnect, $socketLength );
$logArray['tlsResponse'] = $smtpResponse;

//you have to say HELO again after TLS is started
fputs( $smtpConnect, "HELO $localhost$nl" );
$smtpResponse = fgets( $smtpConnect, $socketLength );
$logArray['heloResponseAfterTls'] = $smtpResponse;
}

if( $login ) {
//request for auth login
fputs( $smtpConnect, "AUTH LOGIN$nl" );
$smtpResponse = fgets( $smtpConnect, $socketLength );
$logArray['authRequest'] = $smtpResponse;

//send the username
fputs( $smtpConnect, base64_encode( $param['username'] ) . $nl );
$smtpResponse = fgets( $smtpConnect, $socketLength );
$logArray['authUsername'] = $smtpResponse;

//send the password
fputs( $smtpConnect, base64_encode( $param['password'] ) . $nl );
$smtpResponse = fgets( $smtpConnect, $socketLength );
$logArray['authPassword'] = $smtpResponse;
}

//email from
fputs( $smtpConnect, "MAIL FROM: " . $param['from'] . $nl );
$smtpResponse = fgets( $smtpConnect, $socketLength );
$logArray['mailFromResponse'] = $smtpResponse;

//email to
fputs( $smtpConnect, "RCPT TO: " . $param['to'] . $nl );
$smtpResponse = fgets( $smtpConnect, $socketLength );
$logArray['mailtoResponse'] = $smtpResponse;

//the email
fputs( $smtpConnect, "DATA$nl" );
$smtpResponse = fgets( $smtpConnect, $socketLength );
$logArray['dataResponse'] = $smtpResponse;

//construct headers
$headers = "MIME-Version: 1.0$nl";
$headers .= "Content-type: text/html; charset=$charset$nl";
$headers .= sprintf( "To: %s <%s>$nl", isset( $param['nameto'] ) ? $param['nameto'] : '', $param['to'] );
//"To: $nameto <$to>" . $newLine;

$headers .= sprintf( "From: %s <%s>$nl", isset( $param['namefrom'] ) ? $param['namefrom'] : '', $param['from'] );
//"From: $namefrom <$from>" . $newLine;

//observe the . after the newline, it signals the end of message
$str = "To: %s$nl" . "From: %s$nl" . "Subject: %s$nl$headers$nl$nl%s$nl$nl.$nl$nl";
fputs( $smtpConnect, sprintf( $str, $param['to'], $param['from'], $param['subject'], $param['content'] ) );
//"To: $to\r\nFrom: $from\r\nSubject: $subject\r\n$headers\r\n\r\n$message\r\n.\r\n");
$smtpResponse = fgets( $smtpConnect, $socketLength );
$logArray['contentResponse'] = $smtpResponse;

// say goodbye
fputs( $smtpConnect, "QUIT$nl" );
$smtpResponse = fgets( $smtpConnect, $socketLength );
$logArray['quitResponse'] = $smtpResponse;
$logArray['quitCode'] = substr( $smtpResponse, 0, 3 );
fclose( $smtpConnect );
if( $logArray['quitCode'] == 221 ) $logArray['success'] = true;
return $logArray;
}


不過E-mail這東西似乎還有很多編碼的問題需要解決,我無法很順利的用UTF-8去寄東西,又要小心Big5的衝碼字。
另外,寄件/收信人暱稱好像只能用英文??中文就算用括號也不行呢........
... read more

鄧麗君 - 但願人長久

但願人長久
作詞:蘇軾 
作曲:梁弘志 
編曲:Alex San
1 6m 4 5
明月幾時有 把酒問青天
我欲乘風歸去 唯恐瓊樓玉宇
人有悲歡離合 月有陰晴圓缺
6m 2m 4 5
不知天上宮闕 今夕是何年 4 5 1
高處不勝寒  起舞弄清影 何似在人間
此事古難全  但願人長久 千里共嬋娟

6m 4 2m 5
轉朱閣 低綺戶 照無眠
6m 4 2m 5
不應有恨 何事長向別時圓
......
... read more

林憶蓮 - 紙飛機

紙飛機
作詞:小寒 作曲:林憶蓮/黃韻仁 
編曲:黃韻仁
CD: D
boy: A
start: 6
4 1 4 1
王子騎白馬 月亮不見啦
*孩子們玩耍 雙腳全是沙
4 5 1 5/7 6m
還有貓咪總是 追著尾巴 有多傻
笑聲讓我想起 童年暑假 那個他
4 5
小時候的記憶 好無價
教我摺飛機的他 好嗎?

1 4 2m 5
#紙飛機 的摺法 藏在回憶陪我們長大
紙飛機 的摺法 快樂是永不忘的呀
紙飛機 快飛吧 拋開煩惱自有解答
1 4 2m 5
 紙飛機 快飛吧 快樂方法並不複雜
6m /#5 /5 #4m7-5 4 5 1
 不管未來怎樣多變化 保留這牽掛  屬於我們的童話

Repeat *,#
......
... read more

眼皮跳與時間的關係

發信人: ives0228.bbs@bbs.pme.nthu.edu.tw (喔) 看板: P_ives
標 題: [轉錄]眼皮跳
發信站: 泡芙機場 (07/18/07 13:36:48 Wed)

※ 本文轉錄自 [P_slygun] 看板

作者: slygun (狡猾的槍) 站內: P_slygun
標題: 眼皮跳
時間: 2007/07/18 Wed 12:43:46

眼皮跳
子時:左:有意外的喜事 右:會與他人一起飲食
丑時:左:會為部下的事傷腦筋 右:為長輩的事操心
寅時:左:為了人家的事需要外出 右:有意外的利益
卯時:左:有長輩的客人來訪 右:家理有喜事
辰時:左:有貴賓來訪 右:很可能有意外的損失
巳時:左:可能與他人一起吃飯 右:將會聽到悲哀的消息
午時:左:有意外的吉事 右:應注意金錢的損失
未時:左:在意想不到之時獲得金錢 右:近親或親戚有喜事
申時:左:遠方有消息來 右:可能臨時有客人來訪
酉時:左:為了他人喜事忙碌 右:會與意想不到的人一起用餐喝酒
戌時:左:有長輩的客人 右:也許要到法院出庭
亥時:左:要注意金錢上的損失 右:要注意判決文的內容

原來我之前只分左右邊不太對

......
... read more

濁水溪線文化田野採集 第三天

睡的不好。我沒膽把所有燈都關掉,又沒有夜燈,只好留一盞大大的省電燈泡。睡到一半後有隻蟲不斷地撞著燈把我吵醒了三四次吧。(起床後發現是隻蜜蜂....囧)五點多起身了一下,可是仍然是躺下去就可以睡,就此被門外的或車或狗吵醒了四五次,七點多覺得不能再睡了才起身。

想出去走走逛逛吃早餐,在門口聽到了很大聲的報數,用「洞么兩」的方式報數讓我差點以為是軍營,不過他們的「七」不唸「拐」就是一整個破功。出門後發現是帶營隊的大學生在國小操場上熱身,這制度好像還可以接受。

Sai
昨晚把我拉著的孩子(Sai,小武叔的小兒子,升小一)在學校的操場打籃球,我在跟小武叔打招呼之後去跟他搭訕。他旁邊還有似乎都比他大的一男一女,男的很乾脆地問了我是誰,但是卻沒有自介。國小的籃框真的比較低,連我不會打籃球的都可以輕易地灌籃。

中途接到田叔的電話,聽說志彬今天會比較忙,再加上昨天聽abay說志彬明天要去交大準備網頁小達人的事情了,所以之後應該沒什麼機會碰面了吧(不過行程表上20號似乎是他要帶我去丹大林道)。很不想是因為老爸的關係才有隔閡的。(真要說起來,這隔閡是我自己沒去打破的)總之明早金村長會來接我去地利。

吃完早餐之後逛了一圈,在不知道是不是工地的附近聽到了不錯的敲擊聲,是有兩個(以上)變動頻率組成的,可惜沒能錄下來。走第二趟之前先回去拿了相機,卻因為遇到Sai而沒能好好地拍,也好,這樣拍起來比較快。
路上的狗屎
路上的狗屎又大又多,已經被壓過/踩過的更是不少,走起路來可不能太悠哉。

第二趟回來後有一群看起來是大學生的人們走進田叔岳母的早餐店。我考慮了很久,最後還是沒有主動去搭訕。聽他們有聊到「台灣很多人都跑去大陸讀北大、清華、交通或是復旦,那些學校的排名比台大前面多了」的老梗,所以應該是大學生沒錯,雖然會打扮的比例比在清大還少,但是從都是傳長褲看起來,應該進來了不只一兩天了。


沒膽去搭訕,晃回住的地方彈吉他,昨晚用了一個 1M9 - - #1dim7 2m7 - - #2m7-5 3m7 - 3m9 3m7 4M7 4m6 #4m7-5 - 511 - - 5Aug,今天再把3m改成3dim7 5dim7 b7dim7的循環聽起來不錯。目前除了511還覺得可以更好之外,就差#4m7-5不知道怎麼處理才比較順。話說[微風吹過我的髮]也是升大學的暑假在松鶴部落時無聊在黃康的房間生出來的。


正想錄音的時候被Adour(Sai的哥哥,升小三)叫出去,似乎是想要我跟那群大學生拍照。想當然耳是怕尷尬而沒介入,後來趁著同行的修女落單之時問了一下,原來是台北各大學的教會召集的針對中學生的營隊。修女對我科系的轉變比較正常一些,不過也聽到一個有點遺憾的消息-昨天我沒去看的聯合彌撒有比較完整的八部合音....QQ。後來去達瑪巒部落的招牌前面幫他們拍照也稍微自介了一下,想當然耳他們是不感興趣。(其實有個長的還不錯..cc)

那時是上午十點,開始微微下起雨來,不過空氣還很清晰可以看到濁水溪對面的山被雲霧繚繞。

雖然之前有想到但是卻沒做-沒能把各case的檔案備份下來,現在鷹萬和逢甲的都在催新功能了,出發前BuzzShare的更新也還沒弄...orz

又回到住的地方,不過沒多久Sai和Adour也跑來了。很自以為亂按就可以的操作著電視機和DVD機,驚覺「自以為」並不是小孩的專利,許多大人也不符合我對於「成熟」的這項界定。總之看他們亂玩十豆村(我的吉他)的樣子時在誓不敢在他們面前把NB拿出來,不過令我意外的是他們居然沒有去轉吉他的弦鈕,正確的說是Sai在正要用的時候被我看了一眼,然後就轉而繼續玩一般人(沒學過弦樂的)好奇的悶弦把戲。

再出去晃的時候猶豫了一下要不要帶相機和隨身聽,但是在出門看到一個很喜歡的型經過之後就後悔沒有帶相機出門了。偏偏即使回去拿也來不及了。

或許也和家教有關係,Sai在玩弄著罐裝礦泉水外面的塑膠袋(12瓶一包的那種非密閉式貼身塑膠膜)時,我可以在問答三次之內制止他玩。看樣子他(們)也是會看人臉色來決定自己的行為。Adour在玩十豆村的時候仍然有撞到琴頸,不過那大概是因為我之前講的不夠清楚吧....我無法預料他們的行為又不想解釋,看樣子我仍對小孩子沒辦法。

小武叔的姪子?
晚餐是由小武叔的姪子(應該是吧@.@)來叫我的去吃的,時間是比昨天稍晚的六點55分,問了一下得知今年升高一。話說我認不出原住民中學生以上的年紀,雖然看的出志彬比我小但卻猜不到是差一歲。這孩子表現的比較自然一些,也不會有太多稚氣,正確的說是能夠不理我就不想理我,來叫我時也沒過問我手上的吉他。不過主動跟他講話的話也會回答,很可以感受到實際面的呢。吃完晚餐後聽到他很大聲的唱著[老實情歌],還不錯。....希望下次可以跟志彬或是其他接近年紀的聊開一些。

對這裡的蚊子有些過敏的樣子,被叮過的地方和其附近會冒出比肉色稍紅的包。老媽留下來的[奈米北極冰球]跟預料中的一樣無效(廢話,它上面寫的很清楚是針對痠痛而不是蚊蟲叮咬),不過它涼的效果可以讓注意力不會一直停留在「癢」的思緒上倒是不錯。

又試了一下這兩天在玩的和弦進行,發現小節數不太對。另外錄了一小段無意哼出的旋律。

跟世昱問起的時候猜的不一樣,晚上的天空很晴朗可以看到星星,雖然只要把燈關掉就可以看到更多,但是我不是很想一個人看。(也許加註「一個人」只是想要下次跟bango約會>////<)雖是這麼說,卻還是在睡不太着,試著要錄晚上的一些天籟(後面那個檔,音量起伏很大)之後欣賞了一陣。......
... read more

濁水溪線文化田野採集 第二天

說好早上六點要去雙龍瀑布,老爸拿我也想繼續睡當擋箭牌拖到了六點半才出門。開車到步道之後腦殘地想要直接開車上去(不是不可能,但那台車不適合),結果是我跟老媽先下車之後要等他倒車到安全的地方。我站了兩三分鐘卻打了約二十隻的白線斑蚊,老爸倒完車後說想要回民宿睡回籠-反正他不守信用也不是一兩天的事了。

如果沒有被蚊子叮的話,(夏天的)早上六點多去雙龍瀑布那邊還挺不錯的,不會太熱,步道的長度和坡度對待過清大(政大應該也可以)的人來說不算什麼。在中段的某個轉角之後可以很清楚地聽到瀑布的聲音(在轉角之前則幾乎沒有),而也是在那個轉角之後才開始有走入山裡的感覺。相對而言,前段的「爬山」行為也很不錯,視野上卻因看的到房屋而略嫌文明了些。又過個彎後步道轉而向下,有一幢不知是不是刻意蓋起的石版屋,還有雖然很煞風景但是卻讓都市的我(們)有安全感的舖磚路。

瀑布真的頗大,景觀台雖然仍是離的很遠(超過百米)卻也足夠感受到被水聲環繞。現在比較能去注意到水聲中比較低頻的部分,那部份聽起來還挺震撼的(直覺上的比喻就是[蟲師]裡長角的孩子最後摀耳朵)
雙龍瀑布

旁邊的山壁也很不錯,正覺得好像以前在哪裡看著山壁開始思考「智者樂山;仁者樂水」時,老媽說我真的來過,只是某次風災後那時來吃鱒魚的餐廳已經被沖走了....這附近的地貌改變了不少,卻也有很多東西沒變。
回程時開了也是前天買的MP3隨身聽想要錄下鳥叫聲之類的聲響,想起張志宇學長在說馬修蓮恩「是在美國走投無路了才跑到台灣,結果在台灣意外的受到歡迎」之前,囑咐我要隨時錄下身邊的東西當作以後的創作題材,畢竟[旅行的意義]在配樂上也是蠻受歡迎的。


居住在山裡的人們,真的能夠感受/欣賞山裡的氣息/聲音嗎?還是也像是我們習慣於超商一般地會對自然生態感到厭煩呢?小時後住的地方早上能夠聽到的鳥叫聲會讓我回味/想要再聽,但是卻不會想從藝術的觀點去看,單純就只是一種想要被滿足的慾望。而慾望正是價值觀上最真誠的一部分。


吃早餐時聽一位喝著高粱的「阿幸」說到這附近似乎只區分輩分而沒什麼直系親屬的觀念,所以「阿公」可以有好幾個。若是未經告知就私自停留於某地的話,地主會生氣的。一個石板屋要蓋八年,每片石頭都是靠人力一塊塊搬上來的。13歲就可以生小孩,生小孩是為了做家務。

回到雙龍客棧後昏睡到十點半,出房門去跟坐在卡拉OK機前面的阿姨搭訕(話說她昨天下午唱歌把我吵醒了....),她要我唱個一首,於是我就唱到她走了。過中午後才出發去原本預計早上去拜訪的人家裡,但對方因為教會的牧師選舉(算是不太一樣的模式)事情還沒弄完所以不在。接待的嬸婆很客氣,不過當老爸抱怨起幫他取名字時怎麼沒有殺豬時,她表現的有些勉強/語帶保留。

田叔說要接待我的松志彬是76年次的,不過不令我意外地能夠隨意地開車在山裡繞。聽他說是今天才知道要接待我的,也就是說行程安排上應該還是會有很多變數。(不該用「接待」這個詞的....)
在資訊教室裡跟志彬聊到了之前也有去的交大的人們,abay好像送他一本PHP的書,還帶他逛台中。除了abay和跟電腦相關的事情之外都聊不太起來,也許我太多的話語都是在詢問「『山區裡』怎樣怎樣」的了的關係,我(們)也不喜歡被不熟的人們一直問東問西的吧。

志彬是從小在外面讀書,大學之後才回村子,算是跟村裡的同儕們相反,也戲稱同儕們是酒鬼。而因為青年大多在外地,所以隔代教養的情況佔多數。同個村子裡也會有分基督/天主教派,不同教派之間也確實會有隔閡/閒語。地利村是以前住的更遠的老一輩發現這裡比較方便跟集集作生意才搬過來的,不然以前搬東西去集集交貨的路程可不是兩三天就可以到的。

這幾天會住田叔的太太的老家這邊,吃的則似乎是跟著他的小舅子小武(不確定是不是聯絡名單上的松能武)。下午去濁水溪邊釣了魚,不過我一條都沒釣到。這時不知是不是該慶幸因為有帶錢,所以不怕「釣到的就是你的晚餐」這個情況。山區的小孩子之間似乎都很快可以熟起來的樣子,這家的孩子已經會拉著我去看他玩遊戲了,不過他似乎只是喜歡玩。另外發現把Yahoo! Messenger關掉的話對系統的速度影響比想像中還大(而且是未登入的)


晚餐後打電話給abay,他用了一般驚訝的口吻。他似乎很有融入的樣子,我羨慕起來了。....從高中以來對於這樣的人們忌羨心態再度被點燃。

這樣很不好的吧,雖然我是自己想要去羨慕,卻是停止於光說不做的階段而不肯改變自己。這兩天以來確實又接觸到了更多以往不曾想像過的人和他們的價值觀。

總是想建立起自己的一群朋友,不過也許建立起很多群不同的朋友也很不錯。....「朋友」?

「我們不要兩人世界,我們要全世界。」

打電話給世昱聊了半個小時後,十點睡覺。
......
... read more

濁水溪線文化田野採集 第一天

前一晚跑去買新的NB,因為我想要內建XP的又不想自己灌,所以新的Vista就給老爸用。但是這樣的決定卻是讓我得備份他舊NB裡近10GB的資料。偏偏就NB的光碟機是Combo機(即使是DVD燒錄機,家裡也沒有DVD空片..雖然可以去買啦XD),我的Serv-U 2.5 又被防毒軟體說是病毒,硬是不給開;勉強用了不熟的 War-FTP 又好像是有衝碼字的問題(也許是檔名過長);總之折騰了三個小時候我終於決定用原本以為的下下策:用15片CD燒。似乎一開始就拿新NB,順便習慣Vista還比較好呢。(附帶一提,新NB加裝記憶體後有1.5G;舊的只有256MB)

說是八點要出門的,卻還是拖到了八點半。先到集集拿藥給外婆,外婆的身體機能也開始變差了,不過還是可以走動。拿出了一斤60元的超貴荔枝給我們吃(蠻好吃的,就是難剝了點),接著是我今年一直沒吃的粽子,但老爸怕中午遲到所以就拿著蒸好的粽子在車上吃了。

先到了地利。老爸在車裡就被人認了出來,於是田叔叔(振明)開始介紹我接下來這週的行程。這行程表真是怎一個囧字了得,不但印了出來,標題裡面居然有「高課長公子」的字樣。都沒在怕如果哪個人出名之後被媒體加油添醋嗎?(其實我說出來之後媒體才知道的吧..XD)


中午是參加某個席開一百桌的喜宴,地點是在雙龍國小校內的操場上。重點似乎不太是新人而是表演,一開始是個紅骨樂團(不確定字是怎樣,似乎和河流的名字有關係),很中規中矩地炒熱了場子,有用到原住民常用的合音方式,總覺得好像是平行五度但是又好像不是.... 接著有個辣妹來唱歌跳舞,不過她的歌唱的實在是有夠爛,雖然沒有走音,但PA把Echo效果開到最強了都掩蓋不住她無裝飾的音色,可以說是唸詞吧。但是台下非常喜歡她幾近沒穿的短裙(正確的說是黑色安全褲配上剪開的啦啦隊裙),口哨聲和掌聲遠比平常在城市裡看的到的熱烈的多,老婆在旁邊的也是大聲叫好,老公在旁邊的也沒多說什麼(也有跟著應和的)。老爸是一笑置之,老媽則是沒啥反應。

有一場熱舞的表演,是一個男舞者獨撐場面,曲目似乎就是【舞孃】(我對這首歌實在是沒啥印象,但反正是蔡依琳的歌啦),台下反應居然不輸剛才的辣妹,聽一位長輩說是因為大家都很想發洩,但是平日就只有打獵、手工藝、勞工等工作可以做,所以面對自己也想嚐試的東西就會藉由呼喊來發洩。另一位長輩則要我能放開的時候就要放開。確實我一直覺得原住民之所以很多人很會唱歌是跟他們比較懂得大聲的發洩有關係;我也是因為又開始自閉之後唱歌才退步的。

有一對似乎是阿美族的姊弟上台跳舞,是原住民舞蹈但是感覺很隨便。後來是觀眾自由上台演唱,有上台的都唱的很好,除了一對看衣著就覺得是平地人的夫妻(新娘是平地人,似乎是那邊的親友),在台上的台風也跟其他人差很多。
說到衣著,喜宴場地的男性有一半是穿無袖的。

這辦一百多桌的方式也是有些詭異,除了啤酒每桌只有四瓶,怎麼想都不夠之外,上菜的順序也跟我以往的經驗不同。在我們要離開之前新郎跟新娘有上舞台,新娘也不知是害羞還是內斂地不肯拿麥克風說話(通常喜宴上新娘也幾乎不說話,或說好像有的長輩會囑咐不能說話),新郎倒是很放的開的來了一首[我相信](是伴唱帶,所以應該是原調沒錯),最後還在台上邀當兵時同梯的弟兄喊口號,這在平地不管是鄉村還是都市都是不太可能發生的。


其實整天大多數的時間仍然是老爸跟其他長輩們聊天。模式大概就是寒暄過後介紹老媽和我,拿我的科系說嘴之後就開始他那一套原住民部落發展的理念。

下午睡了好久。去車上拿行李時發覺自己蠻喜歡偶爾這樣被群山環抱的。如果鼻子沒有一起床就過敏到現在就好了。


雖然並不是沒有諸如「常因酒醉而有意外」之類的說法,但聽過的有關原住民個性的描述大多都是開朗外向、願意分享之類的說法,還沒有聽說過他們在心情低落之時的談話/排解方式。
....我(們)這種嘗試洞悉他人心思的個性也不知是好是壞。已知想要成佛的人是不會成佛的。

交大的[網頁小達人]指定地利村,理由似乎是因為其他的村子都是叫大學生去那邊打雜,唯有地利村是把人往外送的。

晚上睡在雙龍客棧(民宿),似乎原本要給我們兩間(我獨自一間),理由是「孩子長大了」,我在猜奉承之於,還是以想讓爸媽可以做愛,或是我方便打槍為主吧。雖然我們三人都說一起住一間就好了(有兩張雙人床,位子是夠的),但是事實證明我很難忍受老爸的打呼聲。......
... read more

新版 Blogger 中 Read More 作法

「新版」係指2006年九月之後的Blogger
羊男實驗の咖啡館 * [ METAMUSE ]:
Blogger Beta 中 Read More 與 Archive 只顯示標題 作法

從 referral 中發現有人在搜尋 Blogger.com Beta 改版後 Read more 與 Archive 只顯示標題的作法,我是「遵循 Blogger 古法」的邏輯再配上新系統內建的語法後,自己摸出來感覺比較簡潔的作法 ,不過原來早有在 Blogger.com 架站的網友公開了其他的作法。
首先在 EDIT HTML 頁面中點選 Expand Widget Templates 後,在</b:skin>標籤後加入下列區段:
..........略
]]></b:skin>
<b:if cond='data:blog.pageType == "item"'>
<style type='text/css'>
span.fullpost {display:inline;}
</style>
<b:else/>
<style type='text/css'>
span.fullpost {display:none;}
</style>
</b:if>
在語法中搜尋 <data:post.body/>,原本的樣子是:
<p><data:post.body/><p>
改成:
<b:if cond='data:blog.pageType == "item"'>
<data:post.body/>
<b:else/>
<data:post.body/>
<br/><a expr:href='data:post.url'> read more... </a>
</b:if>
加<br/>是為了讓 read more 接本文時可以斷行,寫文章的時候,只要把想要隱藏的文章區段用<span class="fullpost">...</span>包起來即可:
本文.....<span class="fullpost">(本文要隱藏的部分)</span>
收工。

要記得勾選[展開小裝置範本(Expand Widget Templates)],另外第一段可以改成:<b:if cond='data:blog.pageType != "item"'>
<style type='text/css'>
span.fullpost { display: none; }
</style>
</b:if>
......
... read more

吉他社暑訓

隔了好幾天沒去,雖說是有在做各個case(含交大音樂所的網頁....囧),不過還是看電視、發呆、睡覺比較多。
雖然還有兩天但應該不會去了。明天起是比賽,所以無法滿足我去練習的需求。

不想再由我宣佈幹部名單(從14屆開始好像都是由我宣佈的,主因都是當天我輩分最大)跟黃琮凱(16屆總務兼教學)凹了很久,可惜最後還是講了幾句跟以往不同但又老生常談的話。

老師主動問我考上了什麼研究所,不過好像沒有很驚訝,第一反而是問「交大有音樂所喔?」

鄭乃仁和阿躍也來了,豐中也有一個比我小一屆的,再加上一中的驢子,覺得比較沒那麼孤單了。不過也因為中一中的後援會開會的關係,我今天不是最老的。除了李明峰學長之外還另外有三個比他還老的學長上台講了幾句話--我如果上去講話的話也會容易被台下的當作耳邊風吧(不是不尊敬,而是沒有真的聽進去)

試著用C, D, E, F, G, A大調彈[上弦月],除了C和G大調之外都不順,順階和弦的原位是沒問題,但應該再多加強對4/5, 5/4, 2/#4, 3/#5, 4/6, 5/7的練習的。
跟著彈了投機者,比想像中的好,還能夠勉強跟上拍速200的8-beat滿拍刷chord,單音也大多彈的到,不過順暢和裝飾音上還有很多進步空間。

阿躍的菸味比想像中重。
我還是不太找的到話題跟雅惠老師聊。
......
... read more

吉他社暑訓

這兩天都有去

老師還是能夠一眼認出我,不過似乎對我考上什麼研究所不感興趣
而且也不太講關於制度的事了
不過有說看不太出來我不是高中生(高一有個學妹還以為我最多只大她兩歲)
原本既擔心又期待的被叫上台唱歌也沒有發生

好像還沒有教Si指型的樣子,學員們連La指型都不熟呢
除了衛道的當屆幹部外,似乎沒啥人看出我是學長
應該說,沒有用以前學長制的方式對我
不過打拍子倒是很主動(跟小我兩屆的那群相比)
今天下午帶單音的是中一中吉他社23屆的學弟(劉秉謙和柯秉辰是22屆),終於有認出我了
但跟他同屆的中女學妹們似乎不想理我,連招呼都沒打
...當了學長之後果然會想要有學長制呀,這就是權威容易腐敗的原因吧

雖然普遍狀況不佳,不過覺得自己也沒彈的多好
去了兩天(雖然都是遲到早退)好像也沒有很顯著的進步
大概要到「好聽」還有一段路吧,大概鋼琴、口琴,還有唱歌的狀況也差不多
總之有點開始對「學很多樂器」這件事沒什麼把握
雖然要能唬人是不難,但是至少會羞愧於說出「我學吉他七年了」這句話
李昀叡(總務)說他覺得星光大道的門檻不高,我去應該可以上(我沒看過星光大道)

上午恢復八點開始(好像有幾年是9點才開始),不過午睡後不操封閉
不曉得下午到幾點結束,各校留下來練的狀況又是如何?
但原本還想要練封閉的我要八點到那邊實在是有點困難
不過冷氣運作正常,倒很是舒服(而且也不至於睡著)

最後兩天(7/9,7/10)衛道高三要暑輔,聽說是太后當教務主任後的決定


希望今年不用再由我宣幹了

明天要去看神經內科所以不會去,後天之後應該會恢復10:00~16:00在那邊的狀況吧......
... read more

自製竹筏龍舟

原本是在無名BBS的白爛板看到龍舟的Y拍,點了影片後看到文字就覺得自己會把影片看完:
轉自http://www.wretch.cc/blog/jaymin&article_id=10939492


顯示影片
音樂來源:五月天 倔強。
主演:JAY(我本人)KANE(碩彥)JAYSIN(胡傑)
導演:JAY (自己很想當導演,其實根本沒導演這回事)。
剪接:JAY。
字幕&旁白:JAY。

很多大人其實很會說風涼話,或許有很多人也都會說。
「你們一定浮不起來啦」 「你以為竹筏這麼好做嗎??要是這麼好做每個人都會去做竹筏了」
(但誰會這麼閒整天做竹筏呀? )
「很危險唷,你們最好不要這樣做唷!」

太多不被看好的聲音,使的我們有點灰心。
難道你們有做過竹筏嗎??你們有受過做竹筏的專業訓練嗎??
沒有做過就否定、沒有實驗過就放棄。
這算什麼。( 怎麼感覺我很火 )
現在不是成功了嗎 ? 這只是個態度!! 一個feel, 我們做到了!!

文章分類: 搞笑有什麼前途?

說真的,我(們)即使是在做修的主科的final project,也沒有毅力淋雨砍竹子、沒有休養忍受冷言冷語、沒有意願在大熱天買器材趕工搬運、沒有心思借救生衣和槳....

這篇我轉的有點胖菜或是游智浩或是vic的感覺。
不過我不小心又有點想要譙yya了...
......
... read more

把清大課程總表丟進資料庫

  一直不知道學校到底有沒有把比較好處理的課程「總」表放在網路上,但是又不能去問(去年電商專題的EZCheat讓部分教授們對課務組和計中施壓,不會把那樣的資料給我們),最後只好自己從校務資訊系統的查詢網頁著手了,先跳過表單檢查步驟強制用空字串當關鍵字以一次查到所有課程,然後用PHP去做parsing和塞進資料庫。
  雖然講起來沒什麼,但這東西花了我整個下午,(說起來還頗對不起英翔學長的....答應的BuzzShare的進度已經落後很多了)中途還冒出一些目前還不知道怎麼解決的問題,比方說因為我幾乎不會用正規表示法,只好改用投機的方式去把 <input> 改成 <input/>。(這件事告訴我們修過【正規語言】跟擅長使用正規表示法是兩回事)
  總之,程式碼如下,已經改成只要把網頁給他就可以的function了:function nthuCourseParse( $webpage ) {
$data = file_get_contents( $webpage );
$data = mb_convert_encoding( $data, 'UTF-8', 'BIG-5' );

// Preserve only <table />
$tableStart = strpos( $data, '<table' );
$tableEnd = strpos( $data, '</table>' );
$data = substr( $data, $tableStart, $tableEnd - $tableStart + 8 );

/*
Make it to match XML format
The wierd ');"></td>"' is used for handling the button.
Note that   is not allowed in XML until other DTD declaration.
*/
$replace = array(
'<BR>' => '<BR/>',
'<br>' => '<br/>',
' ' => ' ',
');"></td>' => ');" /></td>',
'&' => '&'
);
foreach( $replace as $from => $to )
$data = str_replace( $from, $to, $data );

$parser = xml_parser_create();
xml_parser_set_option( $parser, XML_OPTION_CASE_FOLDING, 0 );
xml_parser_set_option( $parser, XML_OPTION_SKIP_WHITE, 1 );
if( !xml_parse_into_struct( $parser, $data, $values, $tags ) )
printf(
'Line %d, Col %d: %s',
xml_get_current_line_number( $parser ),
xml_get_current_column_number( $parser ),
xml_error_string( xml_get_error_code( $parser ) )
);
xml_parser_free( $parser );

/*$colName = array( '科號', '科目', '學分', '時間', '教室/容量',
'教師', '人限', '備註', '人數', '對象', '擋修', '大綱' );*/
/*
Parse into another structure in which each element is a course.
Note that empty string is also parsed.
The initial value 4 of the for-loop is based on the structure of <table />,
as the increasing-step 4 is to skip the other row of <table />.
*/
$tr = $tags['tr'];
for( $c = 0, $i = 4; $i+1 < count( $tr ); $i+=4, $c++ ) {
$tdi = 0; // index of td
for( $j = $tr[$i]+1; $j < $tr[$i+1]; $j++ ) { // Trace each <td /> for data
$re = $values[ $j ];
$arr[$c][$tdi][] .= trim( $re['value'] );
if( $re['tag'] == 'td' )
if( in_array( $re['type'], array( 'close', 'complete' ) ) )
$tdi++;
}
}
return $arr;
}

這樣就會回傳一個比較容易懂的結構了,至少比較方便直接呼叫到想要的東西,可以有如是的用法:foreach( $arr as $r => $course ) {
$db[$r]['sn'] = $course[0][1];
$db[$r]['chinese'] = $course[1][0];
$db[$r]['english'] = $course[1][2];
$db[$r]['credit'] = $course[2][1];
$db[$r]['period'] = $course[3][1];
list( $db[$r]['location'] ) = explode( '/', $course[4][1] );
$db[$r]['teacher']['chinese'] = $course[5][1];
$db[$r]['teacher']['english'] = $course[5][3];
}

其實也可以用數字當index直接呼叫所需的資料啦,不過先做過這件事的話就比較可以知道自己再寫什麼:foreach( $db as $i => $course ) {
$teacher = $db->getOne( sprintf( "SELECT sn FROM teacher WHERE name = '%s'", $course['teacher']['chinese'] ) );
$db->exec( "INSERT INTO course ( sn, name, teacher ) VALUES ( '%s', '%s', %d )", $course['sn'], $course['chinese'], $teacher ) );
}
......
... read more

Csound - Final Project

MP3下載

這次的比較能聽了....
/*
Csound - Final Project
Author: Kong Kao
Advisor: Prof. James Ma

This project uses pre-entered chords to implement auto-composition.
Chords are stored by their roots in tables.
Instr 1 decides how the chord goes, and store the way the music would go
into a function table (giftMelody).
Instr 2 does 3 part of music:
1. The root of the chord.
2. A melody generated by an algorithm with random.
3. Accompaniment
*/
<CsoundSynthesizer>
<CsOptions>
</CsOptions>

<CsInstruments>
; Initialize the global variables.
sr = 44100
kr = 4410
ksmps = 10
nchnls = 1

; Global a-rate variabe used for reverberation
gaSig init 0

; Some constant for convenience
giSemiTone init 2^(1/12)
giLoopLength init 8 ; Seconds a period would use.

; Function tables
giftScale init 2
giftMelody ftgen 0, 0, 8192, -2, 0, 8192, 0 ; Overall roots of chords

; Function tables that stores the chords.
; The name of them is only meaningful for me, so don't mind it...XD
giftBallad init 1
giftHappy init 4
giftToDearYou init 5


instr 1
/*
No signal output, but need to have the same length with i2.
Used to assign the overall roots to the function table giftMelody
Note that only the value is neither semitones nor intervals, but the
index of the tone in giftScale.
*/
aPhasor phasor 1/giLoopLength
INIT0:
iSwitch = floor(rnd(3))
if( iSwitch == 0 ) then
iFt = giftBallad
elseif( iSwitch == 1 ) then
iFt = giftHappy
else
iFt = giftToDearYou
endif
aMelody table aPhasor, iFt, 1
timout 0, giLoopLength, CONT0
reinit INIT0
CONT0:
rireturn
aPhasor phasor 1/p3
tablew aMelody, aPhasor, giftMelody, 1
endin


instr 2
iUnit = 0.25 ; The shortest length of a note, measured in seconds
iAmp = ampdb( p4 )
iBaseFreq = p5

kPhasor phasor 1/p3
kMelody table kPhasor, giftMelody, 1
kPitch table kMelody, giftScale
kFreq = iBaseFreq * giSemiTone ^ kPitch / 2
aSig1 oscil iAmp, kFreq, 11

; ----------------------------------------------------------
iPrevPitch = 3
iPrevInterval = 0
iPosition = 0
/*
Use a variable to store the position of the current note in the period.
This is used to decide which chord it is for the note.
*/
INIT2:
/*
Decide the interval of this note with the root of the chord.
If the previous interval tends to be balanced (such as 4th tends to
3rd, and 7th tends to octave), set the interval to the tension. (Note
that this may go wrong as the chord changes)
Note that the "interval" is stored one less than what we call it.
*/
if( iPrevInterval == 3 ) then
iInterval = 2
elseif( iPrevInterval == 6 ) then
iInterval = 7
else
INTERV2:
iInterval table rnd(ftlen(3)), 3
cigoto ( iInterval < 0 ), INTERV2
endif

/*
Fetch what the chord here it is and calculate the tone to be played.
If the interval with the previous note is bigger than octave,
then choose the interval again randomly.
*/
iRootIndex table iPosition/p3, giftMelody, 1, 0, 1
iPitch table iRootIndex + iInterval, giftScale
cigoto ( abs( iPitch - iPrevPitch ) > 12 ), INTERV2

/*
Decide the length of this note.
For disonant tones (those not in the triad chord of the given root),
set the length of it short.
*/
if( iInterval != 0 \
&& iInterval != 2 \
&& iInterval != 4 \
&& iInterval != 7 \
) then
iDur = iUnit
else
iDur = (int(rnd(3))+1)*iUnit
endif

kAmp expseg 0.01, 0.1, 1, iDur-0.2, 0.25, 0.1, 0.01

iFreq = iBaseFreq * giSemiTone ^ iPitch
kVibEnv linseg 0, 0.3, 0, iDur-0.3, 0.5
kVibAmp lfo kVibEnv, 10
kFreq = iFreq * ( 1 + kVibAmp )

kForm line 600, iDur, 800
kBand line 60, iDur, 80
aSig2 fof iAmp * kAmp, kFreq, kForm, 0, kBand, \
0.005, 0.02, 0.07, 64, 14, 15, iDur


if( iDur > 0.3 ) then
gaSig = gaSig + aSig2 / 2
endif
iPosition = iPosition + iDur
iPrevPitch = iPitch
iPrevInterval = iInterval
timout 0, iDur, CONT2
reinit INIT2
CONT2:
rireturn

; ---------------------------------------------------------------------
iPosition3 = 0
iPrevPitch31 = 0
iPrevPitch32 = 0
INIT3:
/*
Decide 2 tones to play.
floor(rnd(3))*2 is used to decide the semitones with the root would be,
that is, they're deciding whether the the interval is 1st, 3rd, or 5th.
*/
iRootIndex3 table iPosition3/p3, giftMelody, 1, 0, 1
iPitch31 table iRootIndex3 + floor(rnd(3))*2, giftScale
iPitch32 table iRootIndex3 + floor(rnd(3))*2, giftScale
iFreq31 = iBaseFreq * giSemiTone ^ iPitch31 * 2 ^ floor(birnd(1))
iFreq32 = iBaseFreq * giSemiTone ^ iPitch32 * 2 ^ floor(rnd(2))

kAmp3 linseg 0, 0.2, 1, iUnit-0.2, 0
aSig31 oscil iAmp*kAmp3, iFreq31/2, 13
aSig32 oscil iAmp*kAmp3, iFreq32/2, 12

if( iFreq31 < 220 ) then
gaSig = gaSig + aSig31 * abs( 220 - iFreq31 ) / 220
endif

iPrevPitch31 = iPitch31
iPrevPitch32 = iPitch32
iPosition3 = iPosition3 + iUnit
timout 0, iUnit, CONT3
reinit INIT3
CONT3:
rireturn
aSig3 = ( aSig31 + aSig32 ) / 2


aSig sum aSig1/2, aSig2, aSig3
kAmp linseg 1, p3-4, 1, 4, 0.01
aSig = aSig * kAmp
out aSig
endin

instr 101
aSig reverb gaSig, 0.5
out aSig
gaSig = 0
endin


</CsInstruments>

<CsScore>
/*
Function table 1 and 4:
Stores the roots of the chords by the index of the note in f2.
By using GEN7 and big enough table, we can then set the chord to change
in a nonregular way, that is, chord may change not only at the 1st beat
of a bar.
*/
f 1 0 64 -7\
3 8 3 0 \
7 8 7 0 \
8 8 8 0 \
7 8 7 0 \
6 8 6 0 \
5 8 5 0 \
6 8 6 0 \
7 4 7 0 \
0 4 0

f 4 0 16 -7\
3 4 3 0 \
1 4 1 0 \
6 4 6 0 \
7 2 7 0 \
0 2 0

f 5 0 32 -7\
6 4 6 0 \
7 4 7 0 \
3 2 3 0 \
2 2 2 0 \
1 4 1 0 \
6 4 6 0 \
7 4 7 0 \
3 8 3

/*
Function table 2
Stores major scale in numbers of semitones
between the tonic and each one.
*/
f 2 0 16 -2 \
-5 -3 -1 0 2 4 5 7 \
9 11 12 14 16 17 19 21

/*
Function table 3
Stores the probability of an interval to be used.
More a number appears, more the inteval would be used.
*/
f 3 0 64 -7 \
0 5 0 0 \
1 5 1 0 \
2 10 2 0 \
3 3 3 0 \
4 7 4 0 \
5 12 5 0 \
6 2 6 0 \
7 8 7 0 \
-1 64 -1

/*
Function tables for timbre
*/
f 11 0 8193 10 1 0.5 0.25
f 12 0 8193 10 1 0.1 0.2 0.3 0.4 0.3 0.2 0.1
f 13 0 8193 10 1 0.4 0.3 0.2 0.1
f 14 0 8193 10 1
f 15 0 8192 19 0.5 0.5 260 0.5


i 1 0 16
i 2 0 16 75 220
i 101 0 17
e

</CsScore>
</CsoundSynthesizer>
......
... read more