CCHome
 
Font size:      

MyProjects

概觀

這是我之前寫過的程式:也有小程式,也有較大的專案, 這是用來紀錄我曾經做過的事

貪食蛇

貪食蛇

JavaScript/DHTML/DOM/CSS

你之前一定玩過貪食蛇,但這是不一樣的貪食蛇:你只需 使用你的瀏覽器。因為有彩色跟大螢幕,貪食蛇可以更有 趣。現在就可以開始玩,只需點左邊的圖,就可以開始遊戲。 支援 firefox 跟 IE。

我開發這個遊戲是用來練習動態操作瀏覽器裡的 DOM 物件,看到 Ajax 程式開發逐漸流行,網際網路 已逐漸成為下一波的計算平台 我開發這個程式是用來學習像 Google 一樣的網頁程式

拼圖遊戲

alchemist keroro

Java Applet

這是經典的九格拼圖遊戲,同時也是一個著名的數學問題。我曾看 書說這個看起來簡單的遊戲其實是一個 NP-complete 的問題,而且 如果你隨便排列,並不一定能夠排回正確的圖形,如果要能排回正 確的圖形的話,那麼所謂的"錯序參數"必須是偶數。別擔心,我的 拼圖遊戲保證能拼回正確的圖形。

我已經玩這個遊戲很多次了,我已經想到一個方法每次都可以拼回 正確的圖形(當然, 演算法是exponential time 的)。不要只憑你的 運氣,你能想出玩這個遊戲的方法嗎?

這個遊戲目前是以 Java Applet 寫的,我計劃要使用 JavaScript 重寫,不過 JavaScript 並沒有剪裁影像的函式,使用 CSS 的一些 技巧也許可以避免這個問題?需要再深入研究

於台大多媒體系統期末作業

工作日誌

Daily Work Report

JSP/Tomcat/MySQL

在HiNet骨幹網路團隊,每天都有很多事情發生,這是紀錄 每天重要事件的系統,可以貼文字訊息,也可以上傳檔案 給別人參考

於 HiNet

設備管理

Device Manager

JSP/Tomcat/MySQL

HiNet 骨幹有很多設備,這是用來管理設備的系統--路由器設備、卡版 資訊等

於 HiNet

Log 分析

Log parser

C/C++/STL

作為一家 ISP,HiNet必須要知道用戶上網在做什麼,這個專案 是藉由分析快取伺服器的 Log 紀錄,來了解用戶的行為。 分析的資訊包含:最熱門的網址排行、熱門的 URL 排行、 檔案名稱的排行。分析是根據點閱次數和流量總和分別統計, 藉由這個專案得到很多重要的統計資料。

於 HiNet

各種流量統計/效能監控專案

Log parser Log parser Log parser

Python/Perl/RRDtool/PHP/XML/HTML

依據各種不同的需求,在HiNet 我們必須發展各種流量統計/效能 監控的工具。在做這類的開發時我主要的工具是 Python 和 RRDtool: Python 是一個非常高階的物件導向語言,非常適合 這種快速開發的需求;RRDtool 是一種用來產生漂亮的圖的工具 ,可以用來畫隨時間而變動的統計資料。

於 HiNet

骨幹網路效能監控系統

xcontroller

Perl/MySQL

HiNet 在全台灣有超過 30 個機房(PoPs),為了要監控他們之間的 網路是否有阻塞,在用戶抱怨之前就發現問題,我們建造了這一個 效能監控系統。每個機房都有一台伺服器當探針,他們就持續地和 別台伺服器測試網路效能,測試的項目包含: RTT, Jitter, Goodput。 為了讓測試更精準,當 A 與 B 在做測試時,別的伺服器都不能與 A 或 B 做測試。在這麼多機房跟時間的限制下,排程並不是很容易。

這個專案是由我與幾個同事共同開發的,我就是負責其中重要的排程 問題,我想了很久試著要找出一個最佳的排程方法,但是只想到一個 效率很差的演算法,後還我放棄了使用了一個 greedy method,結果 還算令人滿意,這個系統已經跑了幾年都沒什麼大問題。

於 HiNet

Jpeg Baseline 解壓縮

monalisa

C/C++/Win32 SDK/Direct Draw

Jpeg 是一個複雜的影像壓縮標準,要解壓縮一張影像 必須經過很多步驟: 建 Huffman Table, Huffman 解壓縮, 依 zig-zag 排序, de-Quantization, 位元位移, IDCT, Y Cb Cr 轉成 RGB, 再畫出來。實作時很難除錯,因為你 不曉得得到的值要多少才算正確,為了除錯,我記得我曾 人工算出一個 macro block 正確的值來。

台大資訊理論與編碼技巧作業

Mpeg1 I-frame 解壓縮

mpeg1

C/C++/Win32 SDK/Direct Draw

Mpeg1 解壓縮與 Jpeg 解壓縮類似,也是很難除錯,我實作的 Mpeg1 解壓縮只解影像 I-frame 部分,會把其他的資訊略過, 它需要較快的解壓縮速度,因為有比較多張的影像需要解壓縮。

台大資訊理論與編碼技巧期末作業

3D 繪圖引擎

csie teapot

C/C++/Win32 SDK/Direct Draw

輸入的 3D 模型是一個有很多個三角形資訊的純文字檔,包含三角形的 三個頂點、三頂點的顏色、法向量。對於使用書中的理論就能夠描繪出 非常漂亮的 3D 影像非常令人驚喜,左上角的影像是對台大資訊系館模 型使用 Phong shading 的結果,這棟建築物實際上只完工一半, 使用電腦繪圖的技術,就可以讓人看到完工時的景象。

支援的操作方式包含: 移動、放大、縮小、模擬地震、旋轉、 Flat Shading、Gouraud Shading、Phong Shading。

台大電腦圖學理論作業

以特徵為基礎的影像變形技術

morphing1 morphing2 morphing3 morphing4 morphing5

C/C++/Win32 SDK/Direct Draw

如果你看過麥可傑克森的 "Black or White" MTV,你一定會 對於其中一個人變形成另一個人的畫面留下印象。 這個專案的目的就是去了解影像變形的技術:首先你必須 針對原始影像跟最後影像定義對應的特徵線,定義愈多的 特徵線,變形的過程就會愈平順,變形包含了彎曲和 逐漸互相融合的技術,原始的影像逐漸淡出,最後的影像 逐漸變鮮明。

台大電腦圖學理論期末作業