自我介紹 ============================================== 我是成功大學資訊工程學系105級乙班的許友綸。除了寫程式外,興趣是看電影、唱歌,和打羽球。國小開始學程式,第一個語言是VB6,再來是C和Delphi、PHP等等,從國中開始一直對Security有興趣,參加過一次HITCON,後來因為不敢跟爸爸要錢就沒去了... 高中專注於網站安全的部分,曾經為一些網站檢測漏洞。不過資訊安全這塊一陣次沒碰要花很多時間補回來=口= 一直只是C語言使用者,直到大學無意間翻開一本KN King C Programming Language A Modern Approach 2/e,才發現真的只是會用,跟精通完全兩回事,jserv常強調了解C語言的語意,我想在那時候開始我才有深刻的體會吧直到現在都還在持續摸索,C99後的新語法從書上看完有些到現在才第一次用(比如compound literal),不過下學期的C++就不敢說自己學得很好了,雖然C++ Primer 5/e看了八成,語法是會,卻跟寫得好完全不同。預計暑假會買一些Design Pattern之類的書 修課心得 ============================================== 一堂課的好壞不是看輕鬆不輕鬆,而是學不學得到東西。聽郭致軒學長推薦這堂課而且又是jserv講課,就鼓起勇氣來選了。原本有打算這學期要把整本資料結構念完,因此剛聽完第一堂的時候覺得有點硬,不知道這學期能不能勝任,因為身邊同學都是一個禮拜兩三天的課而已,而我卻還有很多主修。在第一次作業派下來之際,原本考慮退選,幸好當時有去找jserv談過,她說服我繼續修課。 在前幾次作業獲益良多,雖然說都是修改別人的CODE,第一次rtenv使我親眼看到以前只能在書上看到的作業系統理論的實作,第一次作業可能嚇壞不少人,也可能老師要趕走慕名而來的人。但是其實只要有心還是能抽絲剝繭慢慢了解,甚至後來發現越來越多這個作業系統的問題,慢慢地有能力去改他。第二個作業是GDB和semihosting,尤其是GDB的使用,我第一次知道GDB能利用TCP連線去遠端除錯,有了gdb的幫助,回去看rtenv的時候顯得如虎添翼。接著是freertos,這讓我們了解較大型RTOS的開發架構還有Linker Script的使用,未來我的project也可能會採用這套。最後就是Polling/Interrupt和inline ASM,以前寫code會過到inline asm,因此這次作業比較輕鬆,不過這次不是在x86不是在x86_64,是在arm cortex-m3架構下的thumb-2指令集,這是我第一次在RISC指令集下寫ASM,不過這次作業沒有讓我體會到RISC和CISC的差別@@ 至於Interrupt部分我就沒有做太多研究,因為接近期中考週,之後會補回來,有心得再來修改 仔細想想每次的作業都是在培養之後Project所需要的能力,我想..如果有一次作業跟不上可能會崩盤。除了做Project,現在不知不覺好像能自己寫一套作業系統了,希望寒假能開始寫一套在STM32跑的RTOS. 目前Project想法 ================================================ a.羽球發球機 目前市面上的羽球發球機動輒六七萬,並且十分不普及,因此連很多羽球重點學校都不見得有,我希望能製造一台價格平易近人的發球機。只不過機構的部分需要做很多功課了,平常羽球用丟的是丟不遠的,如果靠機器揮球拍打不問定性太大。 b.潛水艇 看到很多人做四軸在天上飛,那我來做個遙控潛水艇。 主要材料:遙控器,抽水馬達(用於升降),螺旋槳(用於行進) c.(與本課無關)開發物理引擎 從國中開始我就著迷於遊戲的一些特效,由於物理的模擬使得遊戲更加突出,然而台灣似乎一直沒有自己獨力開發的物理引擎。我希望我的畢業專題能寫一套3D物理引擎,這項計畫從國中(2008年)開始,我發現光靠學校教的動量 碰撞 衝量等等的概念是完全不夠的,有些概念並不適合拿來做運算模型。希望有興趣的人能跟我一起討論 知名2D物理引擎 Box2D http://box2d.org/ 3D物理引擎 PhysX http://www.nvidia.com.tw/object/physx_new_tw.html Havok 開源的Bullet3D 特殊經歷 ================================================ 台灣論壇 程式設計 副版主 (2006年) NPSC全國網際網路程式設計競賽 優勝 (2008) NPSC全國網際網路程式設計競賽 優勝 (2009) 開始為一些大型網站檢測漏洞 (2010年~)