[Memo] 6lurk part – Pain

其實在做這整個專題的時候,我的壓力是非常大的,一邊要應付上面(和老師溝通、和 Yahoo 溝通、邀請 Plurk 團隊、報國科會…等)另一邊面還要催進度和組員溝通,同時自己又要負責寫整個專題的大架構以及另一位同學的子專題(雖然這部分我只花幾天就把他的東西做完了XD),說實在真的是只能用「累」來形容(我自己都不知道我這段日子是怎麼撐過來的,只知道消瘦了許多QQ)。

不過也因為後來壓力太大,我就開始把東西分給隊友做了XD,我覺得應該是我當初的那句話有刺激到隊友吧(我:「如果別人問你專題讓你學到什麼,那你會怎麼回答那個人呢?」 他:「…」),殊不知這其實是激將法進階用法,可以讓隊友心服口服的主動下海去做事,雖然那個時候他一定會覺得我很機車,不過至少從結果來看的話,這個專題才能夠有一個真正屬於他自己的東西吧。

雖然另外一位同學是身在曹營心在漢,人在資工想讀醫的典範,不過我還是要跨刀去做他專題的部分,雖然剛開始我們都很不能理解為什麼不好好了解一下「資訊」呢?甚至是在中途也發生了一個還蠻嚴重的衝突,不過還好這些風風雨雨都過去了。現在事後想想其實我還蠻釋懷的,因為他的關係,我不得不下海去了解last.fm API、Gdata API、Youtube API…等東西,然後試著把它們整合起來。其實專題做到最後面的時候,這一塊反而是我比較有興趣的,自己寫自己的播放器,整合last.fm API實作出自己的播放清單,第一次處理 window messaging 的問題(雖然最後還是靠很髒的 global variable…),真的學到很多,也很感謝他們讓我有這個學習的機會。

不過雖然如此,我就盡量安排一些比較煩心的事情請這位同學幫忙,至少我就不用再多操心這些額外的事情而且他也能為我們整個專題多付出一些貢獻,這樣我就很欣慰了。所以從他們兩個身上讓我學到了管理層的困難面,才不是什麼 Oral Programming 就可以打發了事的咧…因為真的,這個世界上最麻煩的是「人」,而不是做事情或是寫程式。所以也讓我從另一個角度思考,能夠盡量準時完成上層 assign 的事物其實對他們來說就是一種回報了,不要再讓他們操心更多事情而打亂了他們原本的步調,因為你要煩的事情「絕對沒有他們多」。

最後,很快的就來到了2010年的最後一天了,而 2011/01/07 就是專題的決戰時刻了,我們已經進入最後測試微調的部分了,也已經準備好了,那…

「Plurk 你們準備好了嗎?」

[Notes] Interesting animation in jQuery

剛剛意外再次看到tzangms的部落格,沒想到已經過了幾年的時間了!因為這段日子對javascript開始有了一些研究,所以對它的Banner scrolling 的特效很感興趣,就順手研究了一下它的 js code,沒想到這麼簡單就能做到,不知道該說 jQuery 太厲害了,還是想到這種實作方法的人太聰明呢:P

上面這張是他網站的截圖,光是版面的配置以及使用的自製圖案來看,其實就看得出小巧精美的一面,不過今天的重點是那個Banner,我對於他可以做到捲動的效果感到很好奇,而實際做法其實也就是想像中這麼容易,只是他利用了一個CSS background-position的特性,原來當div的background設定成無限延展的時候(預設),就可以利用把position拉到無限遠的地方並搭配 Timer(jQuery可以用animate)設定好一個時間差,然後讓頁面在這個時間內一直偏移position的值來完成捲動的特效。

最後附上測試用程式碼,而圖檔的部分則是以tzangms的banner為例。
https://gist.github.com/757436.js?file=gistfile1.html

[Memo] 6lurk part – musicAnalysis

最近專題已經到了最後階段了,儘管如此,一天的工作量還是來到了12個小時左右。不過最令人開心的莫過於花兩天密集的Hacking把音樂回饋機制給實作出來了,說實在的自己自從暑假經歷兩個月的前端洗禮之後,至少變得比較了解「一點點」Javascript及jQuery了,也比較有能力可以做出符合自己期望的東西。

第一次用 javascript+Youtube javascript API + jQuery做出一個音樂播放器,而基本的輪播、單曲重播、上下曲切換…等功能都有了,只是歌曲的部分是我們分析使用者在Plurk上面的情緒後(星期一到星期日),利用自訂好的類別搭配 last.fm API 來得到該類別下當紅流行的top20首歌曲資訊,然後我們再從Youtube上面抓到最相關(因為它們串流檔這麼多,所以我們只找最相關的那一個)的影音串流回來,最後組成我們播放的卡帶,就可以任君挑選啦!

也許大家會覺得這種類型的網站不是很多嗎?那我們為什麼還要再做一個類似的應用?當然是有原因的,因為並沒有一個網站(可能是我不知道),會依照他的用戶提供量身訂做的音樂,而我們一來使用最接近使用者的社交資料來當做分析的來源,二來是利用一些統計上的分類來把我們量化過的分數幫使用者做一個情緒上的分類並提供相關的歌曲,如此一來當然能夠給予使用者最貼近當下情緒的音樂啦。

而我們團員自行測試後發現,其實我們自己都有類似的需求,因為時常都不知道要聽什麼歌,只是希望能夠像聽廣播一樣打開就可以聽到歌,然後不想聽的時候關掉就好,是一種心境上的自由,也不要有太大的負擔,這樣子不是很好嗎?在這邊我要和大家介紹一個啟發我很大的網站StreamDrag,它也是一個利用Youtube為資料來源的音樂播放網站,它有一個很棒的哲學(Philosophy),也很貼近我們設計的理念,在這邊引用這段話來為整篇文章做個結語。

Music amazes, music creates emotions and music pushes emotions.Music is the language of the world and thats why it should be available wherever you are. Therefore our biggest aim is to make music available wherever it is possible as simple as possible and to create new, innovative ways of listening.

[Nonsense] the Pressure and Growth theorem


最近真的已經把自己給逼到絕境了,一堆雜事如海浪般襲來,有考試、有工作、有專題、有作業、有程式、還有聚會,唯一沒有的就是休息…常常都會問自己幹嘛要把自己搞的這麼累,但是說實在的我也不知道該怎麼回答,每個人都有他自己的個性與做事風格,可能是因為獅子座的特性,所以常會把所有事情都攬在身上然後累死…

雖然真的很累,而且打這篇的時候手上還有八九件事情都還沒處理,不過也愈是在這樣疲累的心情下才會想要打這篇文章吧?但也是事情已經多到壓得我喘不過長氣來,所以我才能夠試著分配事情給朋友們來做,不要一直想要靠自己單打獨鬥,這才是所謂的團隊力量吧?

而我發現在這些壓力下,人真的可以成長很快,我以前從來沒想過要去看別人寫的Source Code,特別是那些沒什麼註解、文件的程式碼。也是因為這樣才能夠把專題的一些服務加入許多原本沒有的機制,減少等待時間以提升使用者在使用時的體驗(請參閱知名的「0.1秒、1秒、10秒理論」),甚至是如何團隊分工(這一點我要坦呈我真的很欠缺也沒做多好,我還是自己寫了大約90%的程式碼而且和團員發生過許多大大小小的爭執)。

不過這些經驗都是很重要的,因為他們讓我能更往我心中的「道」更進一步,不只是在程式方面或是團隊、人際方面都是百利而無一害的。所以事情一定都是正反兩面的,雖然我失去了些什麼,但是我也相對得到了更值得的事物,不是嗎?

This is what I called — the Pressure and Growth theorem .

[Nonsense] words from Amir

剛看了一下「噗浪,玩出大生意(Plurk Your Brand , Plurk your Business)」,在文末技術長Amir與Jeremy有一段很棒的對話要記下來勉勵一下自己:

Q: 對於像你一樣很會寫程式的高手,你有什麼建議提供給他們?

A: 不要放棄,要精通某件事情,一定得花上很長一段時間,差不多10年吧!即使是像莫札特這種天才也是用了13年才熬出頭的。寫程式就像做任何事一樣,需要的就是熱情而已。對我來說,這更像是一種習慣而非工作而已。在成為大師級人物之後,一定要這麼想。接著就是從一個有趣的專案開始,可能是做一款遊戲,一個網站,然後從PHP、Python這種語言開始做起!

加油。