2007-07-29

好用的JavaScript Calendar

  製作網頁表單常常為了統一使用者輸入日期格式煩惱?一般都是用select標籤來限制使用者或使透過JavaScript檢查使用者輸入的格式是否正確,前幾天在網路上不小心撿到好康的程式(JavaScript Calendar)。
  JavaScrip Calendar讓你的網頁可以輕鬆的增加月曆讓使用者方便點選,月曆出現的方式也可以選擇彈跳出新視窗或用浮現在原頁面,選擇完畢後自動將日期填入對應的欄位中,其中日期產生格式也可以由你自訂,是一套十分靈活的JavaScript模組。
  參考原著網頁:http://www.dynarch.com/projects/calendar/

使用示範:
step1)  到http://www.dynarch.com/projects/calendar/下載最新版本
step2) 將下載回來的套件解壓縮丟入網頁目錄
step3) 下載範例網頁並將之跟解壓縮的資料夾放在同一層目錄中即可

更多進階使用方法:
  解壓縮後資料夾中英該有一個doc子資料夾,裡面有完整的使用說明!

2007-07-27

【Ubuntu】硬體檢視軟體

  系統本身的硬體檢視工具雖然顯示很詳盡的硬體資訊,不過分類上卻很亂,對一般人來說很多內容也都是多餘的。
  Sysinfo是一套比較輕巧,分類也很清楚的好軟體,顯示畫面如下:
安裝Sysinfo

$ sudo apt-get install sysinfo

軟體開啟路徑:應用程式 -> 系統工具 -> Sysinfo

2007-07-24

【Ubuntu】讓Ubuntu可以解RAR壓縮檔

step1) 先到http://www.rarlab.com/download.htm下載RAR for Linux

step2) 將下載回來的檔案解壓縮
   $ tar zxvf 檔名

step3) 把解壓縮得到的幾個檔案丟到/usr/local/bin目錄下就可以了
   $ sudo mv default.sfx rar rar_static unrar /usr/local/bin/

PS. 系統內的解壓縮軟體就可以正確解壓縮RAR檔!!


NEW

後來發現直接apt-get安裝unrar就可以了^^

$ sudo apt-get install unrar

2007-07-19

【Ubuntu】安裝phpSysInfo


phpSysInfo讓你可以透過網頁輕易觀察主機目前運行狀態: CPU、磁碟、網路...等使用狀況。

安裝phpSysInfo
$ sudo apt-get install phpsysinfo

開啟phpSysInfo網頁
http://你的ip/phpsysinfo

PS.系統必須能執行php

【Ubuntu】安裝Pure-FTPd搭配網頁管理使用者系統

安裝pure-ftpd with MySQL
$ sudo apt-get install pure-ftpd-mysql

切換到網頁目錄
$ cd /var/www

下載PureFTPd網頁管理系統(系統需支援PHP)
$ wget http://machiel.generaal.net/files/pureftpd/ftp_v2.1.tar.gz
(可以到http://machiel.generaal.net/查詢是否有新版的管理系統)

解壓縮下載的套件
$ tar zxvf ftp_v2.1.tar.gz

開啟瀏覽器, 輸入網址:
http://你的ip/ftp/install.php
接著照網頁提示依序完成每個步驟就可以了
最後會提示修改檔案mysql.conf
首先切換到檔案所在的目錄
$ cd /etc/pure-ftpd/db
先備份原先的設定檔
$ sudo mv mysql.conf mysql.conf.bak
將管理系統網頁step6頁面所提示要修改的內容全部複製起來
建立設定檔mysql.conf並貼上複製的內容
$ sudo vi mysql.conf

重新啟動Pure-FTPd伺服器
$ sudo pure-ftpd-control restart

開啟網頁編輯ftp使用者
http://你的ip/ftp
登入後即可管理ftp使用者

PS1.
出現錯誤 Checking if config.php is writable Failed!
  解決=>將ftp目錄下的config.php改為可寫入即可

PS2.
出現錯誤 Checking if PHP Extension MYSQL is enabled Failed!
  解決=>確定是否已安裝php5-mysql套件

PS3.
避免日後遭受駭客攻擊, 設定完畢後應該刪除ftp目錄下的install.php檔案

2007-07-14

【Ubuntu】安裝Apache-tomcat

安裝JAVA執行環境jre
sudo apt-get install sun-java5-jre

安裝JAVA開發套件jdk
sudo apt-get install sun-java6-jdk

網路上看到有人解釋下面這指令是:設置當前預設的java解釋器
sudo update-alternatives --config java
(選2, 選項中有sun字串者)

抓取tomcat套件(可以到http://tomcat.apache.org/download-60.cgi找最新套件)
wget http://apache.stu.edu.tw/tomcat/tomcat-6/v6.0.13/bin/apache-tomcat-6.0.13.tar.gz

移到/opt下
sudo mv apache-tomcat-6.0.13.tar.gz /opt/
cd /opt
sudo tar zxvf apache-tomcat-6.0.13.tar.gz
sudo mv apache-tomcat-6.0.13 tomcat

編輯檔案/etc/profile
sudo vi /etc/profile
加入以下敘述
export JAVA_HOME=/usr/lib/jvm/java-6-sun

啟動apache-tomcat
sudo /opt/tomcat/bin/startup.sh
如果出現以下指令, 則伺服器成功啟動!
Using CATALINA_BASE: /opt/tomcat
Using CATALINA_HOME: /opt/tomcat
Using CATALINA_TMPDIR: /opt/tomcat/temp
Using JRE_HOME: /usr/lib/jvm/java-6-sun

apache-tomcat預設開啟的服務port是8080
因此開啟網頁記得指定port, 參考下面格式
http://你的ip:8080

新增tomcat管理帳號
sudo vi /opt/tomcat/conf/tomcat-users.xml
<tomcat-users>≶/tomcat-users>之間加入以下敘述
<user username="用戶名" password="密碼" roles="admin,manager"></user>
再重新啟動apache-tomcat即可
sudo /opt/tomcat/bin/shutdown.sh
sudo /opt/tomcat/bin/startup.sh

即可點選http://你的ip:8080
左方選單Tomcat Manager項目進入管理伺服器

修改伺服器服務的port為80
sudo vi /opt/tomcat/conf/server.xml
找到<connector port="8080" protocol="HTTP/1.1"></connector>敘述
修改成<connector port="80" protocol="HTTP/1.1"></connector>
再重新啟動apache-tomcat即可
sudo /opt/tomcat/bin/shutdown.sh
sudo /opt/tomcat/bin/startup.sh

修改port為80後開啟網頁就不必另外指定port了
直接輸入網址及可
http://你的ip

【關鍵字:Ubuntu、Apache-tomcat、伺服器套件安裝、網頁伺服器】

2007-07-10

成熟

硬幹不是英雄,為生命找到出口才是成熟

  上星期,有一位大五延畢生來實驗室想坳成績,不過基於原則與公平還是拒絕他的任何理由、藉口,不知他哪來的勇氣竟然勇敢到打電話給老師,老師只好請他到實驗室來重新確認成績。

  狀況描述:
    。翹課兩週
    。小考只考10分
    。程式作業驗收表現中下

  我的評分項目有:出席、作業、小考、程式驗收,至少兩個項目均表現不佳,否則要被當是不可能的,在評分原則來說,我可以給分給得很鬆,但絕對不隨便!

  老師在他來實驗室之前有交代:人家是大五延畢生這學期要被退學了,等一下來的時候就把分數算給他看,口氣好一點,他已經沒有退路了,不要讓人家跑去自殺了...。

  一開始確實用很"和緩"的口氣把分數算一遍給他看,接著跟我坳說他只是遲到沒簽名,有一次缺課他有來,我實在很不能理解,沒簽到是我的錯嗎?!何況遲到一節課,第二堂有來補簽到我也都視為出席,還想跟我扯東扯西。

  接著扯說:我上課有宣布小考是拿來加分,所以他就隨便亂考?!小考拿來加分...我是說考試題目很簡單(其中30分試題內容也都透露了),考試是希望藉此來"提升"分數吧,這也跟我亂扯亂坳,沒後路就要這樣亂說話嗎?!連基本30分都不去掌握還想坳什麼成績。

  最後還質疑我成績比例,竟然說我小考比例不應該佔這麼高,我還真想請他來安排下學期課程好了。

  讓他在實驗室扯了一個小時,搞到最後實驗室學長都聽不下去,也加入戰場(感謝宏毅、文皓),這樣他還是繼續"ㄌㄨˊ",最後救星出現:老闆現身(背景閃亮亮),老闆眼見戰局進入白熱化,老闆親自開口"超渡"這位刀下亡魂。

  老闆嘴砲(不對,是口才)果然名不虛傳,再一次把成績分析給他聽一次,此時他當然繼續把剛剛說詞一一重複,老闆也一一還擊並且很厲害的把戰局移到轉學考,提供另一條生路給他選擇,此時老闆說出:成績是這學期的表現評量,現在你只能選擇繼續怨天尤人或是幫自己找一條出路,給自己另一個機會,這才是成熟的表現。

  老闆就這樣拍著那迷途羔羊的肩膀,將之送出實驗室。

  我把老闆的話改成「硬幹不是英雄,為生命找到出口才是成熟」,這事件看來我似乎沒錯,不過當老闆提到成熟這點,我知道我應該有所反省,雖然成績事實是如此,我雖然沒做任何私自調分的惡行,不過我應該要放大格局,除了在成績上讓人心服口服,也應該要有能力適時提出其他機會給予參考,如此或許就能得到雙贏吧!?

2007-07-04

【遞迴】字串的排列組合

問題:
假若給一字串abc , 寫一程式能夠印出其所有的排列組合
abc acb bac bca cba cab

想法:
n為字串長度
讓所有字元皆出現在第n位置一次
abc
acb
cba
接著分n組個別探討,此時第n位置已固定
m為剩下字元,讓剩下所有字元皆出現在第m位置一次

依此類推,當n為1時直接印出字串,即完成。

用C語言實作:

#include <stdio.h>

void p(char *str, int n) {
char ch ;
int i ;
if(n==1) {
printf("%s\n", str) ;
}
else {
for(i=n-1 ; i>=0 ; i--) {
ch = *(str+i) ;
*(str+i) = *(str+n-1) ;
*(str+n-1) = ch ;
p(str, n-1) ;
ch = *(str+i) ;
*(str+i) = *(str+n-1) ;
*(str+n-1) = ch ;
}
}
}

int main() {
char ch[] = "abcd" ;
p(ch, 4) ;
system("pause") ;
return 0 ;
}

【關鍵字:字串排列組合、Permutation、遞迴】

2007-07-01

【Ubuntu】安裝phpMyAdmin

安裝phpMyAdmin
$ sudo apt-get install phpmyadmin

裝完後必須先新增一個mysql的帳號
$ mysqladmin -u root password [密碼]

PS.

  • 這裡新增的root跟系統的root是不同的,如果遺漏第二個步驟會發生錯誤 => #1045 - Access denied for user 'root'@'localhost' (using password: YES)
  • 安裝完畢後套件會自動在/var/www下建立連結,網址列輸入http://127.0.0.1/phpmyadmin即可進入
【關鍵字:Ubuntu、apt-get、phpMyAdmin】

【Ubuntu】安裝Apache + MySQL + PHP

安裝MySQL-Server
$ sudo apt-get install mysql-server

安裝Apache HTTP Server
$ sudo apt-get install apache2

安裝PHP for Apache HTTP Server
$ sudo apt-get install php5

安裝MySQL for Apache HTTP Server
$ sudo apt-get install libapache2-mod-auth-mysql
$ sudo apt-get install php5-mysql

PS.
資料庫預設目錄:/var/lib/mysql
網頁預設目錄:/var/www
Apache設定檔:/etc/apache2/apache2.conf

【關鍵字:Ubuntu、apt-get、Apache2、MySQL、PHP5】

【Ubuntu】安裝ssh

先更新系統套件
$ sudo apt-get update

安裝ssh套件
$ sudo apt-get install openssh-server

【關鍵字:Ubuntu、apt-get、sshd】

【整合版】黃志銘-系統程式

  老師上課進度很慢,因為進度很慢所以上的內容不會很多,這學期來說只教到第四章,不過第五章後面的內容就是compiler,到時修compiler就會學到,所以該教的也都教到了...。老師上課風格就是很嚴肅,三不五時會突然來個冷笑話,通常他講玩笑點大概要隔個幾秒班上才會領悟他在說笑話,講明白一點就是笑點很低啦。

  就我來說,老師的課很好睡。上課老師對秩序會比較要求,也不喜歡聽到上課有手機響,如果不幸忘了切震動上課響了他就會稍微念一下。考試內容也很好抓重點,會考的他上課上到時大概都會稍微提示一下,因此有在聽課的就不用太擔心抓不到考試重點!

【延伸閱讀】
【95-下】黃志銘-系統程式(期中考)
【95-下】黃志銘-系統程式(期末考)
【9X-下】黃志銘-系統程式(期末考)

【關鍵字:黃志銘、系統程式、考古題】

【整合版】徐泓洋=>計算機結構

  徐老伯伯真得是很傳奇人物,除了上課嘴砲打得生動以外,對於學生成績他也很敢玩...。我這學期修了徐老伯的計結後才了解上學期選不到組合語言的原因:一學期點名三次,來兩次以上就有及格保證,考卷只要有寫東西絕對過,只要你寫的內容根本科目相關就可以。

  其實這樣的給分實在很讓人OOXX,不過老師說對於認真回答的同學他就會認真改考卷,雖然不知道是真是假,就姑且信之吧...。撇開分數不討論,老師上課真的沒話說,雖然對於成績評比有點隨便,不過上課倒是很認真,而且我個人覺得教得很好,可惜的是修課學生大多只是來拿學分,就我這學期修課狀況來看,上課有在聽的大概就是坐在前三排的四、五個人,對於上課老師只要求不要睡覺、不要講話,看自己的書做自己的事他都不會管,還滿讓我無言的。

  老師上課主要會針對近幾年研究所考題走向為重點,上課老師會要求去印一份他自製的講義,講義看起來就很像...補習班課本,我想老師之前應該是有在外面跑補習班才是...如果要考研究所可以考慮修他的課。   至於考試內容,因為老師說他只看考卷內容豐富程度,所以他都考簡單的名詞解釋或是比較題,對於計算類型題目他大概都不會出吧!?因此很好寫...

【延伸閱讀】
【95-下】徐泓洋=>計算機結構(期中考)
【95-下】徐泓洋=>計算機結構(期末考)
【94-下】徐泓洋=>計算機結構(期中考)
【94-下】徐泓洋=>計算機結構(期末考)

【關鍵字:徐泓洋、計算機結構、考古題】