<<tiddler HideTiddlerSubtitle>><<tiddler HideTiddlerTitle>>\n[img[Software Engineering|http://knightfeng.org/Pic/S3B.gif]][img[Software Engineering|http://knightfeng.org/Pic/O3S.gif]][img[Software Engineering|http://knightfeng.org/Pic/F3S.gif]][img[Software Engineering|http://knightfeng.org/Pic/T3S.gif]][img[Software Engineering|http://knightfeng.org/Pic/W3S.gif]][img[Software Engineering|http://knightfeng.org/Pic/A3S.gif]][img[Software Engineering|http://knightfeng.org/Pic/R3S.gif]][img[Software Engineering|http://knightfeng.org/Pic/E3S.gif]][img[Software Engineering|http://knightfeng.org/Pic/Space3.gif]][img[Software Engineering|http://knightfeng.org/Pic/E3B.gif]][img[Software Engineering|http://knightfeng.org/Pic/N3S.gif]][img[Software Engineering|http://knightfeng.org/Pic/G3S.gif]][img[Software Engineering|http://knightfeng.org/Pic/I3S.gif]][img[Software Engineering|http://knightfeng.org/Pic/N3S.gif]][img[Software Engineering|http://knightfeng.org/Pic/E3S.gif]][img[Software Engineering|http://knightfeng.org/Pic/E3S.gif]][img[Software Engineering|http://knightfeng.org/Pic/R3S.gif]][img[Software Engineering|http://knightfeng.org/Pic/I3S.gif]][img[Software Engineering|http://knightfeng.org/Pic/N3S.gif]][img[Software Engineering|http://knightfeng.org/Pic/G3S.gif]]\n-----\n/ [[Original 06_SE|http://KnightFeng.org/ICE_CYCU/06_SE]] / Created: Mar. 27, 2007 / Testing Now /\n-----\n|!''Week''|!''Date''|!''Proposed Progress''|!''Slides''|!''Important Notes''|\n| ''01'' |Feb. 27 '07| Introduction to SE |[[Color|Slide/06SE_Week1.pdf]] [[BW|Slide/06SE_Week1_BW.pdf]]||\n| ''02'' |Mar. 6 '07| Software Development Cycle |[[Color|Slide/06SE_Week2.pdf]] [[BW|Slide/06SE_Week2_BW.pdf]]||\n| ''03'' |Mar. 13 '07| Software Development Strategy |[[Color|Slide/06SE_Week3.pdf]] [[BW|Slide/06SE_Week3_BW.pdf]]||\n| ''04'' |Mar. 20 '07| OOA with UML (1) |||\n| ''05'' |Mar. 27 '07| OOA with UML (2) |[[Color|Slide/06SE_Week5.pdf]] [[BW|Slide/06SE_Week5_BW.pdf]]||\n| ''06'' |Apr. 3 '07|!Vacation|||\n| ''07'' |Apr. 10 '07| OOA with UML (3) |||\n| ''08'' |Apr. 17 '07| OOA with UML (4) |||\n| ''09'' |Apr. 24 '07|!Mid term Exam. Week|||\n| ''10'' |May 1 '07|!Our Mid Term Exam.|||\n| ''11'' |May 8 '07| OOD with UML (1) |[[Color|Slide/06SE_Week11.pdf]] [[BW|Slide/06SE_Week11_BW.pdf]]||\n| ''12'' |May 15 '07| OOD with UML (2) |||\n| ''13'' |May 22 '07| OOD with UML (3) |||\n| ''14'' |May 29 '07| OOD with UML (4) |||\n| ''15'' |June 5 '07| Project Management (1) |||\n| ''16'' |June 12 '07|!Vacation|||\n| ''17'' |June 19 '07| Project Management (2) |||\n| ''18'' |June 26 '07|!Our Final Exam.|||\n| ''19'' |July 3 '07|!Final Exam. Week|||
<<option chkGenerateAnRssFeed>> GenerateAnRssFeed\n<<option chkOpenInNewWindow>> OpenLinksInNewWindow\n<<option chkSaveEmptyTemplate>> SaveEmptyTemplate\n<<option chkToggleLinks>> Clicking on links to tiddlers that are already open causes them to close\n^^(override with Control or other modifier key)^^\n<<option chkHttpReadOnly>> HideEditingFeatures when viewed over HTTP\n<<option chkForceMinorUpdate>> Treat edits as MinorChanges by preserving date and time\n^^(override with Shift key when clicking 'done' or by pressing Ctrl-Shift-Enter^^\n<<option chkConfirmDelete>> ConfirmBeforeDeleting\nMaximum number of lines in a tiddler edit box: <<option txtMaxEditRows>>\nFolder name for backup files: <<option txtBackupFolder>>\n<<option chkInsertTabs>> Use tab key to insert tab characters instead of jumping to next field\n
<<tiddler HideTiddlerSubtitle>><<tiddler HideTiddlerTags>>\n!Education\n*Sep. '96 - Jul. '03\n**Ph.D. Student, [[Department of Computer Science|http://www.cs.nthu.edu.tw/]], [[National Tsing Hua University|http://www.nthu.edu.tw]]\n*Sep. '94 - Jul. '96\n**M. S. [[Department of Computer Science|http://www.cs.nthu.edu.tw/]], [[National Tsing Hua University|http://www.nthu.edu.tw]]\n*Sep. '90 - Jul. '94\n**B. A. [[Department of Computer Science|http://www.cs.nthu.edu.tw/]], [[National Tsing Hua University|http://www.nthu.edu.tw]]\n*Sep. '87 - Jul. '90\n**[[Chung-Li Senior High School|http://www.clhs.tyc.edu.tw/]]\n*Sep. '84 - Jul. '87\n**[[Ping-Chen Junior High School|http://www.pjjh.tyc.edu.tw/]]\n*Sep. '78 - Jul. '84\n**[[Hsian-Ming Elementary School|http://www.simps.tyc.edu.tw/]]\n!Awards\n*Sep. '87 High School Mathematics Preeminence Student / 獲[[教育部|http://www.edu.tw]]選為數學科資賦優異學生\n*Nov. '88 Taiwan Province High School Programming Contest / Rank 1 in the Preliminary, and Rank 3 in Final / 台灣省高中軟體設計賽 初賽第一 決賽佳作 / Team Mate: [[周宗君|http://blog.tcchou.org]] and 李祥邦\n*Oct. '92 Rank 2, Taiwan Collegiate Programming Contest / 大專軟體設計賽優勝 / Team Mate: 蘇紀安 (Chi-An Su) and 張晉碩 (Leon Chin-Shuo Chang)\n*Oct. '93 Rank 1, Taiwan Collegiate Programming Contest / 大專軟體設計賽特優 / Team Mate: 蘇紀安 (Chi-An Su) and 張晉碩 (Leon Chin-Shuo Chang)\n*Mar. '94 [[ACM Collegiate Programming Contest|http://www.acm.org/contest/]] / 代表我國參加 ACM 學術程式設計賽 / Team Mate: 蘇紀安 (Chi-An Su) and 張晉碩 (Leon Chin-Shuo Chang)\n*Oct. '94 Rank 1, Taiwan Collegiate Programming Contest, Team Leader / 大專軟體設計賽特優 隊長 / Team Mate: [[潘仁義 (Jen-Yi Pan)|http://ant.comm.ccu.edu.tw/index.php?menu=m1i1]], 廖立祥 (Li-Shang Liao), 鄭秦輝 (Nicolus Cheng)\n*Feb. '95 [[ACM Collegiate Programming Contest|http://www.acm.org/contest/]] Team Leader/ 代表我國參加 ACM 學術程式設計賽 隊長 / Team Mate: [[潘仁義 (Jen-Yi Pan)|http://ant.comm.ccu.edu.tw/index.php?menu=m1i1]], 廖立祥 (Li-Shang Liao), 鄭秦輝 (Nicolus Cheng)\n!Research Interest\n*Computer Graphics\n*Realistic Image Synthesis\n*Virtual Reality\n*Network Virtual Environments\n*Distributed System\n!Experiences\n*Oct. '87 - Jul. '88 Publicist, Computer Club, [[Chung-Li High School|http://www.clhs.tyc.edu.tw/]] / [[中壢高中|http://www.clhs.tyc.edu.tw/]] 資訊社 公關\n*Oct. '90 - Jun. '91 Exec. Secretary, 1st year [[NTHU CS Student Association|http://www.cs.nthu.edu.tw/~cssa/]] / 創立[[清華大學資訊科學系系學會|http://www.cs.nthu.edu.tw/~cssa/]], 擔任執行秘書\n*Mar. '91 - Jul. '91 Design Office Work Management System and Personnel Management System for NTHU CS / 設計清華大學資訊系之系所務 / 人事課程管理系統 / Team Leader: [[楊永仁 (Yun-Jen Yang)|http://www.hcu.edu.tw/hcu3/content/imd01/content/teachers/teacher_01.asp?sn=5]]\n*Sep. '94 - Feb. '95 T.A., Introduction to MultiMedia System, NTHU CS / 清華大學資訊系 多媒體系統導論 助教\n*Feb. '95 - Feb. '96 Establish and Be the 1st Chairman of Association of College Software Programming Contest Winners / 創辦 大專軟體設計賽得獎人聯誼會, 並擔任會長\n*Mar. '95 清華大學資訊系系刊編輯\n*Sep. '95 - June '97 T.A., Several Classes, NTHU CS / 清華大學資訊系 課程助教\n*Sep. '94 - Jul. '99 System Administrator, Serveral Labs, NTHU CS / 清大資科/資工系 實驗室系統管理員\n!Research Projects\n*Aug. '94 - Jul. '95 Parametric Mechanical Design Expert System / 參數式機械設計專家系統環境之研究(II) (中山科學研究院計畫)\n*Aug. '94 - Jul. '95 Scalable High Performance Computing - Algorithm, System, and Application (Visualization) (Funded by NSC) / 可延展性平行顯像之研究 (國科會計畫)\n*Aug. '95 - Jul. '96 A Study on the Creation, Interaction and Visualization of Shared Virtual Working Environments (Funded by NSC) / 有關分享式虛擬環境視覺化之研究 (國科會計畫)\n*Aug. '96 - Jul. '98 V.O.D. User Interface (Funded by NSC) / 隨意視訊系統之使用者介面環境 (國科會計畫)\n*Aug. '97 - Jul. '98 Hierarchical Radiosity for Dynamic Scenes (Funded by NSC) / 動態環境下階層式輻射成像法之研究 (國科會計畫)\n*Aug. '98 - Jul. '99 Global Illumination for Dynamic Scenes Using Light Buffer (Funded by NSC) / 利用光簇結構之動態場景全域成像法 (國科會計畫)\n*Aug. '98 - Jul. '99 Networked Virtual Environment (Funded By CCL/ITRI) / 網路型虛擬實境 (工研院電通所計畫)\n*Aug. '99 - Jul. '00 Global Illumination based on Hierarchical Light Buffer and Perceptual Metrics (Funded by NSC) / 植基於階層式光簇結構及視覺量度之全域成像法 (國科會計畫)\n*Aug. '99 - Jul. '00 Multi-User Interactive Chatroom based on Networked Virtual Reality (Funded By DragonSoft Co. Ltd.) / 多使用者互動型網路虛擬聊天室 (龍網科技計畫)\n*Jan. '00 - Jan. '03 Technologies and Applications for Next-Generation Media (Funded By MOE) / 新一代資訊傳媒技術與應用 (教育部卓越計畫)\n*Aug. '00 - Jul. '01 Global Illumination for Scenes with Glossy Reflections (Funded By NSC) / 具光澤反射之場景的全域成像法 (國科會計畫)\n*Aug. '01 - Jul. '02 A Study on Streaming 3D Virtual Scenes and Objects (Funded By NSC) / 三度空間場景及物件的串流編碼研究 (國科會計畫)
knight
/%\n|Name|HideTiddlerSubtitle|\n|Source|http://www.TiddlyTools.com/#HideTiddlerSubtitle|\n|Version|0.0.0|\n|Author|Eric Shulman - ELS Design Studios|\n|License|http://www.TiddlyTools.com/#LegalStatements <<br>>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|\n|~CoreVersion|2.1|\n|Type|script|\n|Requires|InlineJavascriptPlugin|\n|Overrides||\n|Description|hide a tiddler's subtitle (dates/created by) display|\n\nUsage: <<tiddler HideTiddlerSubtitle>>\n\n%/<script>\n // get the tiddler element\n var t=story.findContainingTiddler(place);\n if (t && t.id!="tiddlerHideTiddlerSubtitle") \n for (var i=0; i<t.childNodes.length; i++)\n if (hasClass(t.childNodes[i],"subtitle"))\n t.childNodes[i].style.display="none";\n</script>
/%\n|Name|HideTiddlerTags|\n|Source|http://www.TiddlyTools.com/#HideTiddlerTags|\n|Version|0.0.0|\n|Author|Eric Shulman - ELS Design Studios|\n|License|http://www.TiddlyTools.com/#LegalStatements <<br>>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|\n|~CoreVersion|2.1|\n|Type|script|\n|Requires|InlineJavascriptPlugin|\n|Overrides||\n|Description|hide a tiddler's tagged/tagging display elements|\n\nUsage: <<tiddler HideTiddlerTags>>\n\n%/<script>\n var t=story.findContainingTiddler(place);\n if (t && t.id!="tiddlerHideTiddlerTags")\n for (var i=0; i<t.childNodes.length; i++)\n if (hasClass(t.childNodes[i],"tagging")||hasClass(t.childNodes[i],"tagged"))\n t.childNodes[i].style.display="none";\n</script>
/%\n|Name|HideTiddlerTitle|\n|Source|http://www.TiddlyTools.com/#HideTiddlerTitle|\n|Version|0.0.0|\n|Author|Eric Shulman - ELS Design Studios|\n|License|http://www.TiddlyTools.com/#LegalStatements <<br>>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|\n|~CoreVersion|2.1|\n|Type|script|\n|Requires|InlineJavascriptPlugin|\n|Overrides||\n|Description|hide a tiddler's title display elements (name, dates, and author)|\n\nUsage: <<tiddler HideTiddlerTitle>>\n\n%/<script>\n // get the tiddler element\n var t=window.story.findContainingTiddler(place);\n if (t && t.id!="tiddlerHideTiddlerTitle") \n for (var i=0; i<t.childNodes.length; i++)\n if (hasClass(t.childNodes[i],"title")||hasClass(t.childNodes[i],"subtitle"))\n t.childNodes[i].style.display="none";\n</script>
/***\n|Name|InlineJavascriptPlugin|\n|Source|http://www.TiddlyTools.com/#InlineJavascriptPlugin|\n|Version|1.6.0|\n|Author|Eric Shulman - ELS Design Studios|\n|License|http://www.TiddlyTools.com/#LegalStatements <<br>>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|\n|~CoreVersion|2.1|\n|Type|plugin|\n|Requires||\n|Overrides||\n|Description|Insert Javascript executable code directly into your tiddler content.|\n\n''Call directly into TW core utility routines, define new functions, calculate values, add dynamically-generated TiddlyWiki-formatted output'' into tiddler content, or perform any other programmatic actions each time the tiddler is rendered.\n!!!!!Usage\n<<<\nWhen installed, this plugin adds new wiki syntax for surrounding tiddler content with {{{<script>}}} and {{{</script>}}} markers, so that it can be treated as embedded javascript and executed each time the tiddler is rendered.\n\n''Deferred execution from an 'onClick' link''\nBy including a {{{label="..."}}} parameter in the initial {{{<script>}}} marker, the plugin will create a link to an 'onclick' script that will only be executed when that specific link is clicked, rather than running the script each time the tiddler is rendered. You may also include a {{{title="..."}}} parameter to specify the 'tooltip' text that will appear whenever the mouse is moved over the onClick link text\n\n''External script source files:''\nYou can also load javascript from an external source URL, by including a src="..." parameter in the initial {{{<script>}}} marker (e.g., {{{<script src="demo.js"></script>}}}). This is particularly useful when incorporating third-party javascript libraries for use in custom extensions and plugins. The 'foreign' javascript code remains isolated in a separate file that can be easily replaced whenever an updated library file becomes available.\n\n''Display script source in tiddler output''\nBy including the keyword parameter "show", in the initial {{{<script>}}} marker, the plugin will include the script source code in the output that it displays in the tiddler.\n\n''Defining javascript functions and libraries:''\nAlthough the external javascript file is loaded while the tiddler content is being rendered, any functions it defines will not be available for use until //after// the rendering has been completed. Thus, you cannot load a library and //immediately// use it's functions within the same tiddler. However, once that tiddler has been loaded, the library functions can be freely used in any tiddler (even the one in which it was initially loaded).\n\nTo ensure that your javascript functions are always available when needed, you should load the libraries from a tiddler that will be rendered as soon as your TiddlyWiki document is opened. For example, you could put your {{{<script src="..."></script>}}} syntax into a tiddler called LoadScripts, and then add {{{<<tiddler LoadScripts>>}}} in your MainMenu tiddler.\n\nSince the MainMenu is always rendered immediately upon opening your document, the library will always be loaded before any other tiddlers that rely upon the functions it defines. Loading an external javascript library does not produce any direct output in the tiddler, so these definitions should have no impact on the appearance of your MainMenu.\n\n''Creating dynamic tiddler content''\nAn important difference between this implementation of embedded scripting and conventional embedded javascript techniques for web pages is the method used to produce output that is dynamically inserted into the document:\n* In a typical web document, you use the document.write() function to output text sequences (often containing HTML tags) that are then rendered when the entire document is first loaded into the browser window.\n* However, in a ~TiddlyWiki document, tiddlers (and other DOM elements) are created, deleted, and rendered "on-the-fly", so writing directly to the global 'document' object does not produce the results you want (i.e., replacing the embedded script within the tiddler content), and completely replaces the entire ~TiddlyWiki document in your browser window.\n* To allow these scripts to work unmodified, the plugin automatically converts all occurences of document.write() so that the output is inserted into the tiddler content instead of replacing the entire ~TiddlyWiki document.\n\nIf your script does not use document.write() to create dynamically embedded content within a tiddler, your javascript can, as an alternative, explicitly return a text value that the plugin can then pass through the wikify() rendering engine to insert into the tiddler display. For example, using {{{return "thistext"}}} will produce the same output as {{{document.write("thistext")}}}.\n\n//Note: your script code is automatically 'wrapped' inside a function, {{{_out()}}}, so that any return value you provide can be correctly handled by the plugin and inserted into the tiddler. To avoid unpredictable results (and possibly fatal execution errors), this function should never be redefined or called from ''within'' your script code.//\n\n''Accessing the ~TiddlyWiki DOM''\nThe plugin provides one pre-defined variable, 'place', that is passed in to your javascript code so that it can have direct access to the containing DOM element into which the tiddler output is currently being rendered.\n\nAccess to this DOM element allows you to create scripts that can:\n* vary their actions based upon the specific location in which they are embedded\n* access 'tiddler-relative' information (use findContainingTiddler(place))\n* perform direct DOM manipulations (when returning wikified text is not enough)\n<<<\n!!!!!Examples\n<<<\nan "alert" message box:\n><script show>\n// alert('InlineJavascriptPlugin: this is a demonstration message');\n</script>\ndynamic output:\n><script show>\n return (new Date()).toString();\n</script>\nwikified dynamic output:\n><script show>\n return "link to current user: [["+config.options.txtUserName+"]]";\n</script>\ndynamic output using 'place' to get size information for current tiddler:\n><script show>\n if (!window.story) window.story=window;\n var title=story.findContainingTiddler(place).id.substr(7);\n return title+" is using "+store.getTiddlerText(title).length+" bytes";\n</script>\ncreating an 'onclick' button/link that runs a script:\n><script label="click here" title="clicking this link will show an 'alert' box" show>\n if (!window.story) window.story=window;\n alert("Hello World!\snlinktext='"+place.firstChild.data+"'\sntiddler='"+story.findContainingTiddler(place).id.substr(7)+"'");\n</script>\nloading a script from a source url:\n>http://www.TiddlyTools.com/demo.js contains:\n>>{{{function demo() { alert('this output is from demo(), defined in demo.js') } }}}\n>>{{{alert('InlineJavascriptPlugin: demo.js has been loaded'); }}}\n><script src="demo.js" show>\n return "loading demo.js..."\n</script>\n><script label="click to execute demo() function" show>\n demo()\n</script>\n<<<\n!!!!!Installation\n<<<\nimport (or copy/paste) the following tiddlers into your document:\n''InlineJavascriptPlugin'' (tagged with <<tag systemConfig>>)\n<<<\n!!!!!Revision History\n<<<\n''2007.02.19 [1.6.0]'' added support for title="..." to specify mouseover tooltip when using an onclick (label="...") script\n''2006.10.16 [1.5.2]'' add newline before closing '}' in 'function out_' wrapper. Fixes error caused when last line of script is a comment.\n''2006.06.01 [1.5.1]'' when calling wikify() on script return value, pass hightlightRegExp and tiddler params so macros that rely on these values can render properly\n''2006.04.19 [1.5.0]'' added 'show' parameter to force display of javascript source code in tiddler output\n''2006.01.05 [1.4.0]'' added support 'onclick' scripts. When label="..." param is present, a button/link is created using the indicated label text, and the script is only executed when the button/link is clicked. 'place' value is set to match the clicked button/link element.\n''2005.12.13 [1.3.1]'' when catching eval error in IE, e.description contains the error text, instead of e.toString(). Fixed error reporting so IE shows the correct response text. Based on a suggestion by UdoBorkowski\n''2005.11.09 [1.3.0]'' for 'inline' scripts (i.e., not scripts loaded with src="..."), automatically replace calls to 'document.write()' with 'place.innerHTML+=' so script output is directed into tiddler content. Based on a suggestion by BradleyMeck\n''2005.11.08 [1.2.0]'' handle loading of javascript from an external URL via src="..." syntax\n''2005.11.08 [1.1.0]'' pass 'place' param into scripts to provide direct DOM access \n''2005.11.08 [1.0.0]'' initial release\n<<<\n!!!!!Credits\n<<<\nThis feature was developed by EricShulman from [[ELS Design Studios|http:/www.elsdesign.com]]\n<<<\n!!!!!Code\n***/\n//{{{\nversion.extensions.inlineJavascript= {major: 1, minor: 6, revision: 0, date: new Date(2007,2,19)};\n\nconfig.formatters.push( {\n name: "inlineJavascript",\n match: "\s\s<script",\n lookahead: "\s\s<script(?: src=\s\s\s"((?:.|\s\sn)*?)\s\s\s")?(?: label=\s\s\s"((?:.|\s\sn)*?)\s\s\s")?(?: title=\s\s\s"((?:.|\s\sn)*?)\s\s\s")?( show)?\s\s>((?:.|\s\sn)*?)\s\s</script\s\s>",\n\n handler: function(w) {\n var lookaheadRegExp = new RegExp(this.lookahead,"mg");\n lookaheadRegExp.lastIndex = w.matchStart;\n var lookaheadMatch = lookaheadRegExp.exec(w.source)\n if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {\n if (lookaheadMatch[1]) { // load a script library\n // make script tag, set src, add to body to execute, then remove for cleanup\n var script = document.createElement("script"); script.src = lookaheadMatch[1];\n document.body.appendChild(script); document.body.removeChild(script);\n }\n if (lookaheadMatch[5]) { // there is script code\n if (lookaheadMatch[4]) // show inline script code in tiddler output\n wikify("{{{\sn"+lookaheadMatch[0]+"\sn}}}\sn",w.output);\n if (lookaheadMatch[2]) { // create a link to an 'onclick' script\n // add a link, define click handler, save code in link (pass 'place'), set link attributes\n var link=createTiddlyElement(w.output,"a",null,"tiddlyLinkExisting",lookaheadMatch[2]);\n link.onclick=function(){try{return(eval(this.code))}catch(e){alert(e.description?e.description:e.toString())}}\n link.code="function _out(place){"+lookaheadMatch[5]+"\sn};_out(this);"\n link.setAttribute("title",lookaheadMatch[3]?lookaheadMatch[3]:"");\n link.setAttribute("href","javascript:;");\n link.style.cursor="pointer";\n }\n else { // run inline script code\n var code="function _out(place){"+lookaheadMatch[5]+"\sn};_out(w.output);"\n code=code.replace(/document.write\s(/gi,'place.innerHTML+=(');\n try { var out = eval(code); } catch(e) { out = e.description?e.description:e.toString(); }\n if (out && out.length) wikify(out,w.output,w.highlightRegExp,w.tiddler);\n }\n }\n w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;\n }\n }\n} )\n//}}}
<<tiddler HideTiddlerTitle>> <<tiddler HideTiddlerSubtitle>> <<tiddler HideTiddlerTags>>\n*[[Musics of 80's|Music]]\n*[[Basketball]]\n*[[Travel and Joyride|Travel]]\n*[[Food]]\n*[[Movies]]
[[Research]]\n[[Publications]]\n[[Interests]]\n[[Blog|/blog]]\n <<tiddler HideTiddlerSubtitle>><<tiddler HideTiddlerTitle>> <<tiddler ToggleRightSidebar>>\nGallery N/A Now
<<closeAll>><<permaview>><<newTiddler>><<newJournal 'DD MMM YYYY'>><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel 'options »' 'Change TiddlyWiki advanced options'>>
Last Updated: Apr. 23 '07
<!--{{{-->\n<div id='header' class='header'>\n<div class='headerShadow'>\n<span class='searchBar' macro='search'></span>\n<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span> \n<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>\n</div>\n\n</div>\n<div id='mainMenu'>\n<span refresh='content' tiddler='MainMenu'></span>\n<span id='noticeBoard' refresh='content' tiddler='NoticeBoard'></span>\n\n</div>\n<div id='sidebar'>\n<div id='sidebarOptions' refresh='content' tiddler='MochaSideBarOptions'></div>\n<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>\n</div>\n<div id='displayArea'>\n<div id='messageArea'></div>\n<div id='tiddlerDisplay'></div>\n</div>\n<div id='contentFooter' refresh='content' tiddler='contentFooter'></div>\n<!--}}}-->
<<tiddler HideTiddlerSubtitle>>\n!Conference Papers:\n* Distributed Hierarchical Radiosity with Large and Complex Scenes (複雜場景之分散式階層輻射成像法), Master's Thesis, Department of Computer Science, National Tsing Hua University, Taiwan, R.O.C., Jun. 1996\n* Distributed Hierarchical Radiosity with Large and Complex Scenes, With [[Dr. Shi-Nine Yang|http://www.cs.nthu.edu.tw/cglab/professor.html]], In 4th Taiwan Graphics Workshop, Oct. 1996\n* A Parallel Hierarchical Radiosity Algorithm for Complex Scenes, With [[Dr. Shi-Nine Yang|http://www.cs.nthu.edu.tw/cglab/professor.html]], In IEEE/ACM Symposium on Parallel Rendering, Oct. 1997\n* Simplification on Radiosity Meshes, With Pei-Sen Liu, Yi-Chieh Chang and [[Dr. Shi-Nine Yang|http://www.cs.nthu.edu.tw/cglab/professor.html]], In 6th Taiwan Graphics Workshop, Nov. 1998\n* Image Synthesis for Dynamic Scenes, With Su-Yuan Chang and [[Dr. Shi-Nine Yang|http://www.cs.nthu.edu.tw/cglab/professor.html]], In 1999 International Workshop on Advanced Image Technology, Hsinchu, Taiwan, Jan. 1999\n* Hierarchical Link Structure for Dynamic Scene Radiosity, With Su-Yuan Chang, [[Cheng-Tai Shen|http://www.gss.com.tw/2005mnd/laborer_Nick_Shen.htm]] and [[Dr. Shi-Nine Yang|http://www.cs.nthu.edu.tw/cglab/professor.html]], In 1999 National Computer Symposium (NSC), Taipei, Taiwan, Nov. 1999\n* Hierarchical Visibility Structures For Synthesizing Dynamic-Scene Images, With [[Cheng-Tai Shen|http://www.gss.com.tw/2005mnd/laborer_Nick_Shen.htm]] and [[Dr. Shi-Nine Yang|http://www.cs.nthu.edu.tw/cglab/professor.html]], In 2000 International Workshop on Advanced Image Technology, Shounan, Japan, Jan. 2000\n*Virtual Human Animation in Networked Virtual Environments, With [[Dr. Shi-Nine Yang|http://www.cs.nthu.edu.tw/cglab/professor.html]], Chiu-Nan Yang, Ker-Sen Huang, Chia-Ming Chang and Yuan-Chu Tai, In Game TEchnology Conference, Hongkong, Jan. 2001\n*A Projection-Based Algorithm for Rendering Non-Diffuse Environments, With [[Sze-Yao Lee|http://asia.edu.tw/~lsy/]], Chih-Jen Wen and [[Dr. Shi-Nine Yang|http://www.cs.nthu.edu.tw/cglab/professor.html]], In 2001 International Workshop on Advanced Image Technology, Korea, Feb. 2001\n*Virtual Scene Streaming and Remote Walkthrough, With [[Dr. Shi-Nine Yang|http://www.cs.nthu.edu.tw/cglab/professor.html]], Wei-Ming Chen, Chia-Hsin Chen and et. al., In WCE2002, Hsinchu, Taiwan, Dec. 16, 2003\n*A Pre-fetch based Streaming Algorithm for Remote Walkthrough, With [[Dr. Shi-Nine Yang|http://www.cs.nthu.edu.tw/cglab/professor.html]], Wei-Ming Chen and Chia-Hsin Chen, In 2003 International Workshop on Advanced Image Technology, Nagasaki, Japan, Jan. 21-22, 2003 \n!Generalized Reports or Others\n* Talk about Program Development Skills and ACM Programming Contest (淺談程式設計技巧及軟體設計競賽), NTHU CS Student Magazine, No.1, Mar. 1995 (清華大學資訊系刊第一期)\n* Multimedia System, Now and the Future (多媒體系統的發展與未來), NTHU CS Student Magazine, No.1, Mar. 1995 (清華大學資訊系刊第一期)\n* Some Wrotes in My Daily Life (生活札記), NTHU CS Student Magazine, No.1, Mar. 1995 (清華大學資訊系刊第一期)\n* Delphi - A New Generation of Windows Software Development System? (Delphi 新一代視窗軟體發展系統?), [[HopeNet|http://www.hope.com.tw]] [[CD-Rom Monthly|http://192.83.186.101/ncl9/detail_result.jsp?la=c&JI=00000173]], No.11, Apr. 1995. ([[HopeNet|http://www.hope.com.tw]] [[光碟月刊|http://192.83.186.101/ncl9/detail_result.jsp?la=c&JI=00000173]])\n* Chat about Virtual Reality (漫談虛擬實境), [[HopeNet|http://www.hope.com.tw]] [[CD-Rom Monthly|http://192.83.186.101/ncl9/detail_result.jsp?la=c&JI=00000173]], No.17, Oct. 1995. ([[HopeNet|http://www.hope.com.tw]] [[光碟月刊|http://192.83.186.101/ncl9/detail_result.jsp?la=c&JI=00000173]])\n* VRML - Virtual Reality on the Net (網路上的虛擬實境 - VRML), [[HopeNet|http://www.hope.com.tw]] [[CD-Rom Monthly|http://192.83.186.101/ncl9/detail_result.jsp?la=c&JI=00000173]], No.18, Nov. 1995. ([[HopeNet|http://www.hope.com.tw]] [[光碟月刊|http://192.83.186.101/ncl9/detail_result.jsp?la=c&JI=00000173]])\n!Books\n* SQL Server 6.5 Unleashed Chinese Edition (SQL Server 6.5 秘笈大剖析 (編譯)), Co-translated with [[Sze-Yao Lee (李思堯)|http://asia.edu.tw/~lsy/]] and Tommy, Y.-C. Tseng (曾永宗), Published by Unalis Co. Ltd., Oct. 1997 (松崗圖書公司), ISBN 957-22-2595-2 (The latest version is 1st Edition, Revised 4th Printing)
*[[Software Engineering|SE]]\n*[[System Integration|SI]]\n*[[Information Security|Security]]\n*[[Open Source Software|OSS]]\n*[[System Administration|SA]]\n*[[Mobile Office]]\n-----\n\n**fidonet international (國際惠多業餘網路) (fidonet), 6:723/502\n**fidonet <-> Internet gateway system (fidonet) 6:724/13\n**Genesis Net in Taiwan (90 網), 90:1020/702\n**Taiwan AirNet (台灣郵網), 6:2001/3402\n
[[- Knight Feng's HomePage -|knight]]
[img[Knight Feng|http://knightfeng.org/Pic/E_name.gif][knight]] [img[馮正青|http://knightfeng.org/Pic/name2.gif][knight]]
/*{{{*/\n/*Mocha TiddlyWiki Theme*/\n/*Version 1.0*/\n/*Design and CSS originally by Anthonyy, ported to TiddlyWiki by Saq Imtiaz.*/\n/*}}}*/\n/*{{{*/\n #contentWrapper{\nmargin: 0 3.4em;\n\n font-family: Lucida Grande, Tahoma, Arial, Helvetica, sans-serif; /* Lucida Grande for the Macs, Tahoma for the PCs */\nfont-size: 11px;\n line-height: 1.6em;\n color: #666;\n}\n\n.header {\n background: #fff; \n padding-top: 10px;\n clear: both;\n\nborder-bottom: 4px solid #948979;\n}\n\n.headerShadow { padding: 2.6em 0em 0.5em 0em; }\n\n.siteTitle {\n font-family: 'Trebuchet MS' sans-serif;\n font-weight: bold;\n font-size: 32px;\n color: #CC6633;\n margin-bottom: 30px;\n background-color: #FFF;\n}\n\n.siteTitle a{color:#CC6633; border-bottom:1px dotted #cc6633;}\n\n.siteSubtitle {\n font-size: 1.0em;\n display: block;\n margin: .5em 3em; color: #999999;\n}\n\n#mainMenu {\nposition:relative;\nfloat:left;\nmargin-bottom:1em;\ndisplay:inline;\ntext-align:left;\npadding: 2em 0.5em 0.5em 0em;\nwidth:13em;\nfont-size:1em;\n}\n\n#sidebar{\nposition:relative;\nfloat:right;\nmargin-bottom:1em;\npadding-top:2em;\ndisplay:inline;\n\n}\n\n#displayArea {\n margin: 0em 17em 0em 15em;\n}\n\n.tagClear {clear:none;}\n\n#contentFooter {background:#575352; color:#BFB6B3; clear: both; padding: 0.5em 1em;}\n\n \n #contentFooter a {\n color: #BFB6B3;\n border-bottom: 1px dotted #BFB6B3;\n }\n \n #contentFooter a:hover {\n color: #FFFFFF;\n background-color:#575352;\n }\n\n a,#sidebarOptions .sliderPanel a{\n color:#CC6714;\n text-decoration: none;\n }\n\n a:hover,#sidebarOptions .sliderPanel a:hover {\n color:#CC6714;\n background-color: #F5F5F5; \n }\n\n.viewer .button, .editorFooter .button{\n color: #666;\n border: 1px solid #CC6714;\n}\n\n.viewer .button:hover, \n.editorFooter .button:hover{\n color: #fff;\n background: #CC6714;\n border-color: #CC6714;\n}\n\n.viewer .button:active, .viewer .highlight,.editorFooter .button:active, .editorFooter .highlight{color:#fff; background:#575352;border-color:#575352;}\n\n\n #mainMenu a {\n display: block;\n padding: 5px;\n border-bottom: 1px solid #CCC;\n }\n\n #mainMenu a:link, #navlist a:visited {\n color:#CC6714;\n text-decoration: none;\n }\n \n #mainMenu a:hover {\n background: #000000 url(arrow.gif) 96% 50% no-repeat;\n background-color: #F5F5F5;\n color:#CC6714;\n }\n\n#mainMenu br {display:none;}\n\n#sidebarOptions a {\n color:#999;\n text-decoration: none;\n }\n\n#sidebarOptions a:hover {\n color:#4F4B45;\n background-color: #F5F5F5;border:1px solid #fff;\n }\n\n#sidebarOptions {line-height:1.4em;}\n\n .tiddler {\n padding-bottom: 40px;\n border-bottom: 1px solid #DDDDDD; \n }\n.title {color:#CC6633;}\n.subtitle, .subtitle a { color: #999999; font-size: 1.0em;margin:0.2em;}\n.shadow .title{color:#948979;}\n\n.selected .toolbar a {color:#999999;}\n.selected .toolbar a:hover {color:#4F4B45; background:transparent;border:1px solid #fff;}\n\n.toolbar .button:hover, .toolbar .highlight, .toolbar .marked, .toolbar a.button:active{color:#4F4B45; background:transparent;border:1px solid #fff;}\n\n .listLink,#sidebarTabs .tabContents {line-height:1.5em;}\n .listTitle {color:#888;}\n\n#sidebarTabs .tabContents {background:#fff;}\n#sidebarTabs .tabContents .tiddlyLink, #sidebarTabs .tabContents .button{color:#999;}\n#sidebarTabs .tabContents .tiddlyLink:hover,#sidebarTabs .tabContents .button:hover{color:#4F4B45;background:#fff}\n\n#sidebarTabs .tabContents .button:hover, #sidebarTabs .tabContents .highlight, #sidebarTabs .tabContents .marked, #sidebarTabs .tabContents a.button:active{color:#4F4B45;background:#fff}\n\n.tabSelected{color:#fff; background:#948979;}\n\n.tabUnselected {\n background: #ccc;\n}\n\n .tabSelected, .tabSelected:hover {\n color: #fff;\n background: #948979;\n border: solid 1px #948979;\npadding-bottom:1px;\n}\n\n .tabUnselected {\n color: #999;\n background: #eee;\n border: solid 1px #ccc;\npadding-bottom:1px;\n}\n\n#sidebarTabs .tabUnselected { border-bottom: none;padding-bottom:3px;}\n#sidebarTabs .tabSelected{padding-bottom:3px;}\n\n\n#sidebarTabs .tabUnselected:hover { border-bottom: none;padding-bottom:3px;color:#4F4B45}\n\n#sidebarOptions .sliderPanel {\n background: #fff; border:none;\n font-size: .9em;\n}\n#sidebarOptions .sliderPanel a {font-weight:normal;}\n#sidebarOptions .sliderPanel input {border:1px solid #999;}\n\n.viewer blockquote {\n border-left: 3px solid #948979;\n}\n\n.viewer table {\n border: 2px solid [[ColorPalette::TertiaryDark]];\n}\n\n.viewer th, thead td {\n background: #948979;\n border: 1px solid #948979;\n color: #fff;\n}\n.viewer pre {\n border: 1px solid #948979;\n background: #f5f5f5;\n}\n\n.viewer code {\n color: #2F2A29;\n}\n\n.viewer hr {\n border-top: dashed 1px #948979;\n}\n\n.editor input {\n border: 1px solid #948979;\n}\n\n.editor textarea {\n border: 1px solid #948979;\n}\n\n.popup {\n background: #948979;\n border: 1px solid #948979;\n}\n\n.popup li.disabled {\n color: #000;\n}\n\n.popup li a, .popup li a:visited {\n color: #eee;\n border: none;\n}\n\n.popup li a:hover {\n background: #575352;\n color: #fff;\n border: none;\n}\n\n.tagging, .tagged {\n border: 1px solid #eee;\n background-color: #F7F7F7;\n}\n\n.selected .tagging, .selected .tagged {\n background-color: #eee;\n border: 1px solid #BFBAB3;\n}\n\n .tagging .listTitle, .tagged .listTitle {\n color: #bbb;\n}\n\n.selected .tagging .listTitle, .selected .tagged .listTitle {\n color: #666; \n}\n\n.tagging .button, .tagged .button {\n color:#aaa;\n}\n.selected .tagging .button, .selected .tagged .button {\n color:#4F4B45;\n}\n\n.highlight, .marked {background:transparent; color:#111; border:none; text-decoration:underline;}\n\n.tagging .button:hover, .tagged .button:hover, .tagging .button:active, .tagged .button:active {\n border: none; background:transparent; text-decoration:underline; color:#000;\n}\n\nh1,h2,h3,h4,h5 { color: #666; background: transparent; padding-bottom:2px; font-family: Arial, Helvetica, sans-serif; }\nh1 {font-size:18px;}\nh2 {font-size:16px;}\nh3 {font-size: 14px;}\n\n#messageArea {\n border: 4px solid #948979;\n background: #f5f5f5;\n color: #999;\n font-size:90%;\n}\n\n#messageArea a:hover { background:#f5f5f5;}\n\n#messageArea .button{\n color: #666;\n border: 1px solid #CC6714;\n}\n\n#messageArea .button:hover {\n color: #fff;\n background: #948979;\n border-color: #948979;\n}\n\n\n* html .viewer pre {\n margin-left: 0em;\n}\n\n* html .editor textarea, * html .editor input {\n width: 98%;\n}\n\n.searchBar {float:right;font-size: 1.0em;}\n.searchBar .button {color:#999;display:block;}\n.searchBar .button:hover {border:1px solid #fff;color:#4F4B45;}\n.searchBar input { \n background-color: #FFF;\n color: #999999;\n border: 1px solid #CCC; margin-right:3px;\n}\n\n#sidebarOptions .button:active, #sidebarOptions .highlight {background:#F5F5F5;}\n\n*html #contentFooter { padding:0.25em 1em 0.5em 1em;}\n\n#noticeBoard {font-size: 0.9em; color:#999; position:relative;display:block;background:#fff; clear: both; margin-right:0.5em; margin-top:60px; padding:5px; border-bottom: 1px dotted #CCC; border-top: 1px dotted #CCC;}\n#mainMenu #noticeBoard a,#mainMenu #noticeBoard .tiddlyLink {display:inline;border:none;padding:5px 2px;color:#DF9153 }\n#noticeBoard a:hover {border:none;} \n\n#noticeBoard br {display:inline;}\n\n#mainMenu #noticeBoard .button{\n color: #666;\n border: 1px solid #DF9153;padding:2px;\n}\n\n#mainMenu #noticeBoard .button:hover{\n color: #fff;\n background: #DF9153;\n border-color: #DF9153;\n}\n/*}}}*/
<html>\n<iframe align="center" src="http://www.flickr.com/slideShow/index.gne?group_id=&user_id=12709297@N00&set_id=&tags=小琉球" frameBorder="0" width="500" height="500" scrolling="no"></iframe>\n</html>
/%\n|Name|ToggleRightSidebar|\n|Source|http://www.TiddlyTools.com/#ToggleRightSidebar|\n|Version|0.0.0|\n|Author|Eric Shulman - ELS Design Studios|\n|License|http://www.TiddlyTools.com/#LegalStatements <<br>>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|\n|~CoreVersion|2.1|\n|Type|script|\n|Requires|InlineJavascriptPlugin|\n|Overrides||\n|Description|show/hide right sidebar (SideBarOptions)|\n%/<script label="show/hide right sidebar">\n var show=document.getElementById('sidebar').style.display=='none';\n if (!show) {\n document.getElementById('sidebar').style.display='none';\n var margin='1em';\n }\n else {\n document.getElementById('sidebar').style.display='block';\n var margin=config.options.txtDisplayAreaRightMargin?config.options.txtDisplayAreaRightMargin:"";\n }\n place.innerHTML=(show?">>>":"<<<"); // SET LINK TEXT\n place.title=show?"hide sidebar":"show sidebar"; // SET TOOLTIP\n document.getElementById('displayArea').style.marginRight=margin;\n config.options.chkShowRightSidebar=show;\n saveOptionCookie('chkShowRightSidebar');\n var sm=document.getElementById("storyMenu"); if (sm) config.refreshers.content(sm);\n return false;\n</script><script>\n if (config.options.chkShowRightSidebar==undefined)\n config.options.chkShowRightSidebar=true;\n if (!config.options.txtDisplayAreaRightMargin||!config.options.txtDisplayAreaRightMargin.length)\n config.options.txtDisplayAreaRightMargin="18em";\n var show=config.options.chkShowRightSidebar;\n document.getElementById('sidebar').style.display=show?"block":"none";\n document.getElementById('displayArea').style.marginRight=show?config.options.txtDisplayAreaRightMargin:"1em";\n place.lastChild.innerHTML=(show?">>>":"<<<"); // SET LINK TEXT\n place.lastChild.title=show?"hide sidebar":"show sidebar"; // SET TOOLTIP\n place.lastChild.style.fontWeight="normal";\n</script>
/ Copyright © Knight Feng / Powered by [[TiddlyWiki|http://www.tiddlywiki.com]] /
\n//{{{\n//This ensures that the footer sticks to the bottom of the screen when there are no tiddlers open. If that is not desirable, it can be deleted.\nfunction setFooter() {\n if (document.getElementById && document.getElementById("contentFooter") ) {\n var windowHeight=findWindowHeight();\n if (windowHeight>0) {\n var contentHeight= document.getElementById('mainMenu').offsetHeight + document.getElementById("header").offsetHeight + document.getElementById("contentFooter").offsetHeight;\n var menu= document.getElementById('mainMenu');\n if (windowHeight-(contentHeight)>=0) {\n menu.style.position='relative';\n menu.style.marginBottom=(windowHeight-(contentHeight))+'px';\n }\n else {\n menu.style.position='';\n menu.style.marginBottom='';\n }\n }\n }\n}\nwindow.onresize = function() {\n setFooter();\n}\n\nStory.prototype.refreshTiddler_footerhack=Story.prototype.refreshTiddler;\nStory.prototype.refreshTiddler = function (title,template,force)\n{ \nvar theTiddler = Story.prototype.refreshTiddler_footerhack.apply(this,arguments);\nsetFooter();\n return theTiddler;}\n\n//}}}
<<tiddler HideTiddlerTitle>> <<tiddler HideTiddlerSubtitle>> <<tiddler HideTiddlerTags>>\n![[Knight Feng|knight]] / [[Chen-Chin Feng|knight]] / [[馮正青|knight]]\n*Addr. P.O.Box 2-114, Hsinchu City 30099 Taiwan, R.O.C.\n*Fax. +886-943-295138 ({{{Fax2Mail}}} Service by callstar.com.tw)\n*eMail. mailto: web at [[KnightFeng.org|knight]]\n-----\n*[[Internet Studio|http://www.fido.net.tw]]\n*[[Brief History in School]]\n-----\n*[img[Linkedin|http://www.linkedin.com/favicon.ico][http://www.linkedin.com/in/KnightFeng]] [[linkedin|http://www.linkedin.com/in/KnightFeng]] (CV is Available Here ''with Authorized'')\n*[img[flickr|http://www.flickr.com/favicon.ico][http://www.flickr.com/photos/12709297@N00/]] [[Flickr|http://www.flickr.com/photos/12709297@N00/]]\n*[img[del.icio.us|http://del.icio.us/favicon.ico][http://del.icio.us/knightfeng]] [[del.icio.us|http://del.icio.us/knight]]\n*[img[anobii|http://www.anobii.com/favicon.ico][http://www.anobii.com/people/knight/]] [[aNobii|http://www.anobii.com/people/knight/]]\n*[img[Yahoo Launch|http://www.yahoo.com/favicon.ico][http://music.yahoo.com/launchcast/station.asp?u=1281773099]] [[Yahoo!Launch Music Station|http://music.yahoo.com/launchcast/station.asp?u=1281773099]] (musics of 80's)\n-----\n[[TestFlickr]]