服務學習教授訪談心得

總之因爲服務學習神奇複雜的原因,所以我們這組要去跟教授訪談(並記錄、寫報告)。今天訪問的教授是我上學期的線性代數的教授。

這篇的重點是訪談的問題之外的談話。

訪談的問題結束之後,教授開始跟我們閒聊,他提到我上學期問他「爲什麼要學線性代數」的 email ,他說的大概是:「我看到這個問題就很興奮,這個問題非常有破壞性,首先你有提出你的想法,然後再問我的想法。能夠提出你的想法表示你有思考過這個問題。但是我身爲大學教授當然不能像國中老師一樣直接給你答案,我只能指引你方向。我後來期待我們會有後續的對話,但是很可惜並沒有。」我也老實的告訴他,我沒有再回他的原因是我對他的回覆非常不滿意,我決定不再問教授,我要自己找答案。

他也提到他第二次對我產生深刻印象的事件。從學期中後我上他的課幾乎都是帶着耳塞坐在最後一排自己試着讀懂線性代數的教科書,有一次他下課經過我旁邊突然問我耳朵上的是什麼東西,我跟他說是耳塞,他問爲什麼要戴耳塞,我當時差不多是這樣跟他說的:「我覺得你上的東西我都聽不懂,還倒不如自己讀。」這句話隱含着我想要表達的含義是:「我覺得你教的很爛。」當時內心帶着點憤怒這樣跟他說。拉回訪談當下,教授又問我:「那你爲什麼還要出席?不在宿舍讀就好?」我也誠實的回答了他:「我怕你會點名,以防萬一。」我也跟他坦誠,自己讀的效果也並沒有好到哪裏去,跟聽他上課一樣會睡掉一半,大概是翻1頁就會睡半個小時。還好最後有 Khan Academy 救我,雖然沒有救到考試成績,但至少我對線代有最基本一點點的瞭解了。

這次的訪談是我在前2週的導師時間詢問他的。他說當時要是問他的不是我,他也不會那麼輕易的答應。

我自己是很高興教授對我印象這麼深刻啦,這樣要拜託教授幫什麼忙的時候比較容易。

從教授的各種說法看來,我發現教授對於大多數的學生,太過於理想化(高估)他們的學習興趣和動機。在我看來一些人是直接把大學當高中念的,意思是說,學校、教授、家長告訴他們要念什麼、什麼是必修科目,他們就去修這樣,這些人恐怕也就是考試過了、作業交了即作罷,然後出去莫名其妙的當個工程師或是賣雞排這樣。這是他們自己的選擇,不是不好,只是我並不欣賞這樣的選擇,我自己也絕不會做這樣的選擇。但是教授似乎都認爲,會來修這門課的,一定是瞭解這門課的大綱、修課的原因與目的,或是有興趣的。教授似乎並不瞭解這些人的想法,但也是情有可原。

我有點不滿,爲什麼我問教授「爲什麼要讀線代」這個問題的時候,他要我自己找答案;但在線性代數的課程上,卻不斷的用作業、考試塞給學生一題又一題的答案?教授或許是認爲,來修線性代數的學生都已經瞭解自己爲什麼要修線性代數了(除了「線性代數是大一上必修」這個原因),會主動問他這個問題的人想必是不知道答案,需要指引,所以纔會這樣給我指引。而若沒有問問題的人,就通通當作沒有問題。理想狀況下(學生已經瞭解爲什麼要修線性代數),這樣操作確實是很好,但是現實狀況並非如此,教授這麼做也昧於現實。

但又想想,如果第一堂課就花時間簡介線性代數、說明爲什麼要學線性代數、又爲什麼要當作必修,對於那些從來就不打算瞭解「爲什麼要學線性代數」的人來說,大概也不能造成什麼差別。

昨日導師時間之所得

說明:導師時間乃交大近年的新政策,據說原始目的是希望讓老師多多關懷、瞭解、輔導學生。在資工系的實施狀況爲導師時間看不到導師,又名「浪費你時間」,大致上有3種實施方式,第一種爲強迫學生參加某些學校舉辦的演講,第二種爲資工系自己找講者(通常是學長姐)進行經驗分享,第三種爲實質的浪費時間,通常出現在學期初,內容爲說明導師時間的點名方式、重複新生訓練的內容,或是交換學生的廣告。三者均通常爲時2節課(約2小時),均需繳交演講摘要報告,作爲點名用途。謝天謝地我這屆到了大二應該就不再有導師時間。

昨天導師時間的經驗分享由2爲交大學長進行,其中一位是轉入資工系,另一位是轉出。基於學校(系辦)強迫學生參加導師時間的不尊重的反抗心理,當時我正在試着讀懂 ownCloud 一部分的 code ,因此並未專心聽,然經驗分享的片段依舊讓我產生了一些看法與感觸。

第一位是從外系轉入資工系的學長,從分享的內容,以及上次導師時間經驗分享的內容,可以感受到學長們(或是老師、系辦)想要讓大家瞭解的核心理念:「就算你不會寫 code ,對電腦一點興趣也沒有,只要你認真堅持下去念,一樣可以在資工系得到好成績。然後升上研究所或是去工作。」這在我看來極爲諷刺,讓我點評一句:「就像高中一樣。

「我高中的時候,根本不知道 code 是什麼,考大學的時候,成績剛好有到資工系,想說資工系好像不錯,未來比較不會失業blablabla,然後就進了交大資工了。」

「遇到室友,平時打 LOL ,趁遊戲載入的時間,隨便去寫幾行 code ,然後就100分。我絞盡腦汁,最後只交得出20分的屍體。」

「但是我沒有放棄,雖然沒有很喜歡寫程式,但是也不排斥。我認真研讀程式書,後來漸漸感覺到自己的進步,雖然沒辦法拿100分。其他科目也是,我堅持下去認真讀,雖然沒有第一名,但還是拿了個中間的成績。blablabla」

跟高中比較一下:

「考高中的時候,成績剛好有到XX高中,想說XX高中好像不錯,升學率也不錯,然後就進了XX高中。」

「遇到同學,平時上課睡覺 ,補習班翹掉,結果段考還班排2,我補了這麼多科,最後班排不過20。」

「但是我沒有放棄,我認真準備各個科目,問補習班老師各種問題,後來漸漸感覺到自己的進步,雖然沒辦法拿100分,但還是拿了個中間的成績。blablabla」

當然不是每個人都是這樣,這樣也沒有錯(可能錯在家長就是)。

雖然沒有很喜歡XXX,但是也不排斥,爸媽/同學/老師/新聞說XXX不錯,於是我就去做了」,我不喜歡這種態度,這跟隨便選一個不是一樣嗎?這是基於我沒有辦法理解、體會那種「什麼都不排斥,也沒有明顯興趣」的人的想法。在我看來應該做的事情是去做那件最喜歡、最有興趣的事情,就算比起其他東西,沒有多喜歡多少。如果真的找不到最喜歡的是什麼,那上面那種隨便選的方法似乎也是唯一能採用的。

但反過來說,隨便選、什麼都好像喜歡、什麼都不排斥這樣似乎也不錯,別人強迫你做這些事情的時候大概也不會太痛苦。這似乎是針對臺灣的環境(升學主義、考試、強制讀書、大家都讀大學)所演化出來的態度,這個環境中能改變、能選擇的機會比較少,被(半)強迫的機會還是頗多,如此的態度讓人面對衆多無可奈何時不會太痛苦,可以活得下去(雖然在相反想法的人看來這不過是行屍走肉)。

另一點我不認同的在於,那個室友,你不應該覺得你追不上他的程度。真正的全能天才很少,這種專精於某方面的天才,他想必是付出了代價,才能做到這種程度。換句話說,我覺得應該要這麼想,我也會這麼想:「若是我下工夫(付出代價)一定也能和你一樣強。」但是是否要付出這個代價換取這樣東西的決定權是在我,我當初只是沒有做和你一樣的選擇。就算你覺得你追得上他的程度,我也不認爲「讀書」是追上他的方式。能做到這種程度的人,確實有很高的機會是苦讀、努力研究而得來的,但是在苦讀和努力研究背後絕對有強大的夢想、興趣在支撐。我認爲可以做的是去體會他爲什麼對這件事情有這麼大的興趣,甚至進一步去自己培養這個興趣,或許你後來也會在這件事情找到樂趣。

第二位學長的主軸其實也接近上面所講的核心理念。但是他最後播了一部 MV ,我看了很感動。

https://www.youtube.com/watch?v=mqlZVBcs1Wg

「我不想只是當齒輪而已啊!!」

SA/NA 應該納入虛擬化技術相關的教學

前情提要:SA/NA 是交大資工的2門課,分別是計算機系統管理 (System Administration) 和計算機網路管理 (Network Administration) 。

虛擬化環境是現今很多服務的基礎。我覺得對於虛擬化的瞭解應該已經是做一個系統管理員的基本了。

所以身爲專業的系統管理員培育課程的 SANA 課,再納入虛擬化的東西應該會更好。

畢竟就連作業架 server 的環境都是虛擬機了,當然應該要先瞭解虛擬機的技術再來其他的東西啊。

不過照現在的課綱要再塞虛擬化進去也不容易吧,勢必要做一些調整/刪減。

Linux (Ubuntu) 的音效架構

筆電內建麥克風一直不能用的的問題困擾了我許久,爲了這個問題我已經總共耗費掉不下10小時,前幾天我下定決心,既然之前亂槍打鳥都沒辦法解決問題,乾脆就趁這次把 Linux 的音效架構弄清楚。這篇是(稍微)瞭解 Linux 音效架構之後所做的筆記。

在現代的 Linux 當中,音效的處理主要經過4層架構,通常 kernel 和應用程式比較難去改變,因此本文着重說明 ALSA 和 PulseAudio :

  1. 硬體 (Kernel)
  2. ALSA: ALSA 負責比較低階的溝通工作,如辨識音效卡以載入正確驅動模組、辨識晶片、低階硬體資訊(如取樣率)、辨識插孔(普通 3.5mm 的插孔、SPDIF)、偵測插孔的拔插
  3. PulseAudio: 在比較高階的地方整合各應用程式所要輸入、輸出的音訊,並進行混音(好像某些情況下混音是由 ALSA 操控混音晶片負責?)。可以將它視爲音訊 proxy ,夾在應用程式與 ALSA 之間。他也可以將音訊轉送至網路給遠端的 PulseAudio 負責輸出。應用程式若要進行音訊輸入/輸出都會先連接到 PulseAudio ,所以 PulseAudio 能夠個別控制每個音訊輸入/輸出程式的音量。Ubuntu 預設的音量調整就是去調整 PulseAudio 的音量。(PulseAudio 的音量會與 ALSA 的聯動,這我不是非常清楚)
  4. 應用程式

介紹一些術語:

  • 混音 Mix:將來自不同音源的音訊疊加在一起輸出至喇叭
  • 混音器等級:基本上就是音量的意思
  • 立體聲 Stereo :應該就是2聲道的意思(左聲道與右聲道)
  • 單聲道 Mono :大部分麥克風都是單聲道
  • PCM : http://alsa.opensrc.org/Pcm-device
  • 接頭 Connector :在美國常稱爲 jack ,就是指一個插孔
  • 音效卡 Sound card :大部分電腦的音效卡已經與南橋整合,所以音效卡型號基本上就是南橋型號
  • 音效晶片 Sound chip :實際負責音效的晶片,內建 CODEC 功能
  • CODEC :數位訊號(電腦或其他數位裝置)與類比訊號(喇叭、麥克風)的轉換
  • AC‘97 : 我一直以爲這是音效卡的型號,原來他是 Intel 訂定的音效卡規範
  • HDA (High Definition Audio) : 也是 Intel 訂定的規範,取代了 AC97
  • Sink : Pulseudio 當中一個輸入或一個輸出稱作一個 sink

參考:http://alsa.opensrc.org/Sound_Cards:_Introduction

ALSA 需要載入各種 kernel module 以正確運作,module 的選項有時也會影響,modprobe -l 列出目前所載入的 kernel module ,其中 snd 開頭的就是音效相關模組。如果你的音效(輸入和輸出)完全不能用,調整 /etc/modprobe.d/alsa-base.conf 這一行的 model 選項說不定可以修好(這應該只對 Intel 南橋有用)

options snd-hda-intel model=acer enable=1 index=0

設定值的清單

我遇到的狀況是調成 acer 之後音效輸入和輸出就都能用了。

奇怪的是 Google Hangout 和 Skype 的音效輸入卻都不能用,儘管 gnome-sound-recorder 完全正常。

arecord -f dat -r 96000 -D hw:0,0 /tmp/test.wav
這行指令是直接從 ALSA 進行錄音,跳過 PulseAudio ,所以可以判別 ALSA 是否能夠收到聲音。其中 -r 是取樣率,如果設定錯誤的話它會警告「警告:速率不準確 (需要的是 60000Hz,現在的是 96000Hz)」,後面的那個 96000Hz 纔是正確你的設備支援的速率(中文翻譯怪怪的 Orz),-D hw:0,0 是指定要從哪一個裝置錄音,可以用 arecord --list-devices 取得正確的硬體編號。

parec -d alsa_input.pci-0000_00_1b.0.analog-stereo | sox -t raw -r 44k -sLb 16 -c 2 - /tmp/test1.wav
則是從 PulseAudio 錄音,裝置 (sink) 是 alsa_input.pci-0000_00_1b.0.analog-stereo (從名稱可以看出來訊號來源是來自 ALSA),要從哪一個裝置錄音呢?用 pactl list 看,要找的是 Source #1 這種的段落,裏面的名稱就是了,不要找結尾有 .monitor 的。

alsamixer 可以調整 ALSA 所有裝置的音量

pavucontrol 可以調整 PulseAudio 所有裝置的音量,他的設定值會影響 alsamixer

後來 G+ 和 Skype 麥克風不能用的問題是用神奇的方法解決掉了…

很多相關問題的除錯參考資料: