六頂思考帽

在思考一件事情的時候
可以利用的思考模式
就是六頂思考帽
個別是
  • 白色: 事實的陳述事情
  • 紅色: 陳述心理的感覺
  • 黃色: 利用推理的方式,陳述優點
  • 黑色: 利用推理的方式,陳述缺點
  • 綠色: 利用推理的方式,想出新的想法
  • 藍色: 利用推理的方式,總結想法

例如:
白色: 只有半杯水,用玻璃杯裝的
紅色: 怎麼只有半杯水而已
黃色: 剩下半杯水,還可以拿來解渴
黑色: 因為看起來不透明,所以可能不乾淨
綠色: 那半杯水可以用比較小的杯子裝起來就不是半杯水了
藍色: 剩下半杯水,可以拿來解渴,但有可能會吃壞肚子

用Apache多個網域只到同一台主機不同位子

這個很像是用同一台主機
架設兩個網站
但是兩個網站又不想要互相被看到
所以必須要被設定
前面的設定不重要
重要的是下面的設定
<virtualhost *>
    DocumentRoot "C:/www/web1"
    ServerName localhost
    DirectoryIndex index.php index.htm
    <directory C:/www/web1> 
        Options FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </directory>
</virtualhost> 

<virtualhost>
    DocumentRoot "C:/www/web2"
    ServerName matttt.no-ip.org
    DirectoryIndex index.php index.htm
    <directory C:/www/web2>
        Options FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </directory>
</virtualhost>

Patch AT91的Linux kernel

因為有很多程式都會更新
linux的更新適用Patch的方式更新
所以需要下載Patch檔案來更新
不過要核對版本
要跟對應的一樣
要不然Patch過去的檔案會錯誤
以下是AT91的Patch檔案的網站
按此連結
也就是我要Patch Linux kernel 2.6.27的檔案
就需要找2.6.27-at91.patch.gz下載

照上面的教法
首先是下載檔案
然後再利用zcat的指令作Patch
wget http://maxim.org.za/AT91RM9200/2.6/2.6.27-at91.patch.gz
zcat 2.6.27-at91.patch.gz | patch -p1
wget ftp://www.at91.com/pub/linux/2.6.27-at91/2.6.27-at91-exp.3.patch.gz
zcat 2.6.27-at91-exp.3.patch.gz | patch -p1

Ubuntu設定smaba

為什麼要架設smaba呢??
是因為windows和linux資料互相傳送
除了能用FTP之外就是smaba
那smaba是什麼呢??
smaba就是windows的網路芳鄰
也就是可以用windows的網路芳鄰輕易的存取linux的資料


尚未安裝smaba的人打以下指令
sudo apt-get install smaba

設定檔的位置
sudo vi /etc/smab/smb.conf

設定檔要設定的東西
  • 設定跟密碼有關的參數
security = user

security = share  ;二選一
;user :使用 SAMBA 本身的密碼資料庫,密碼資料庫與底下的 smb passwd file 有關
;share:分享的資料不需要密碼即可分享

  • 是否能用root的權限進入
;invalid users = root

;請找到這行將前面加上分號就可使用root的權限登入

  • 分享的資料夾設定
[files]  ;分享的資料夾名稱
comment = files    ;註解
path = /root/files    ;在linux的地方
browseable = yes    ;是否可以觀看此分享資料夾
read only =no    ;只能讀嗎??
writeable = yes    ;是否能寫入,不能跟上面衝突
create mode = 777    ;是否能在裡面新增資料夾
guest ok = yes    ;是否能用訪客的身分進入

  • 設定smaba的密碼
smbpasswd -a username    ;username為你想要新增smaba密碼的帳號

Ubuntu改變啟動為文字模式

修改為文字模式:
vim /etc/X11/default-display-manager
將裡面的內容清空

修改為GUI模式:
vim /etc/X11/default-display-manager
將裡面的內容打上
/usr/sbin/gdm

在文字模式上啟動GUI模式
指令為
startx

設定外部網路連結到內部虛擬器(virtualbox)

通常要從外部網路控制自己用虛擬器所架設的平台
例如:FTP、HTTP、SSH...等等
設定如下

STEP1:
開起CMD(命令提示字元)


STEP2:
將路徑指向VirtualBox的位子
cd "c:\Program Files\Sum\VirtualBox"

STEP3:
想要 SSH對外
輸入以下指令
VBoxManage setextradata "linux" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol" TCP
VBoxManage setextradata "linux" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort" 22
VBoxManage setextradata "linux" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort" 8000
linux為虛擬機的名稱
guestssh想要取的名稱
22虛擬機的port
8000本機要對外的port
要是想要有FTP對外
輸入以下指令
VBoxManage setextradata "linux" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestftp/Protocol" TCP
VBoxManage setextradata "linux" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestftp/GuestPort" 21
VBoxManage setextradata "linux" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestftp/HostPort" 8100 

註:防火牆需要開啟PORT好讓外面的電腦連入
XP設定的方式

設定外部網路連結到內部虛擬器(vmware7.0)

通常要從外部網路控制自己用虛擬器所架設的平台
例如:FTP、HTTP、SSH...等等
設定如下

SETP1:
開啟Virtaul Network Editor....


STEP2:
點取你所用的NAT
再開啟NAT Settings...


STEP3:
加入Add


STEP4:
Host port:→設定用本機哪個port傳送
Virtual machine IP address: →設定虛擬機的IP
Virtual machine port:→設定虛擬機的port
Description:→名稱


這樣就設定完成了
註:防火牆需要開啟PORT好讓外面的電腦連入
XP設定的方式

在Ubuntu 8.04 下建置Android的編譯平台

安裝環境
STEP1:
安裝libary
apt-get install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev

STEP2:
You might also want Valgrind, a tool that will help you find memory leaks, stack corruption, array bounds overflows, etc.
apt-get install valgrind


安裝Repo
STEP1:
新增bin資料夾在使用者目錄底下
cd ~
mkdir bin

STEP2:
下載Repo的code
設定環境
curl http://android.git.kernel.org/repo >~/bin/repo
export PATH=~/bin:$PATH\
chmod a+x ~/bin/repo


下載Android的rootfile程式碼
STEP1:
新增原始碼存放區
mkdir mydroid
cd mydroid

STEP2:
設定要下載的原始碼
repo init -u git://android.git.kernel.org/platform/manifest.git
要是想要下載其他的版本
到此網頁連結
並輸入
repo init -u git://android.git.kernel.org/platform/manifest.git -b <branch>
註:<branch>為版本名稱,如:cupcake、donut...等

STEP3:
下載原始碼
repo sync


下載Android的kernel程式碼
STEP1:
新增原始碼存放區
mkdir mydroid_kernel
cd mydroid_kernel

STEP2:
下載原始碼
git clone git://android.git.kernel.org/kernel/common.git

vim的設定

vim在文字模式下是一個非常好用的編輯軟體
是vi的進化版
要是沒安裝可以執行
需要有root權限
apt-get install vim

開啟設定檔 需要有root權限
vim /etc/vim/vimrc


文字高亮:
syntax on
註:前面不能有"

行數顯示
set nu

高亮度搜尋
set hlsearch

自動縮排
set autoindent

縮排選項轉空格
set expandtab
set shiftwidth=4
set softtabstop=4
set tabstop=4

Ubuntu的多個工作區切換

Ubuntu一灌好登入的時候是視窗畫面
但是登入的時候速度很慢
如果只要文字介面的話
可以按下alt+ctrl+1~6
可以切換工作區
alt+ctrl+7為xwindows的模式

安裝Ubuntu的ssh

為什麼要安裝Ubuntu的ssh
因為可以容易利用putty連上Ubuntu
也就是可以遠端連接
不過只能用文字模式

root權限
apt-get install openssh-server
確定即可

一般權限
sudo apt-get install openssh-server
輸入全限密碼
確定即可

新增Ubuntu的root的權限

因為Ubuntu不想要讓人隨意有最高權限
所以沒有設定是不能用root的帳號
不能用root的帳號要安裝都需要用sudo
但因此很麻煩
所以只要設定root的密碼自然就會開啟


第一步:
進入安裝Ubuntu的帳號
第二步:
打指令
sudo passwd root
[sudo] password for User:→輸入本身的密碼

Enter new UNIX password:→輸入root所要設的密碼
Retype new UNIX password:→重複密碼
passwd: password updated successfully→完成

smarty-1

smarty
是一個可以將php與html分開的libs下載處:http://www.smarty.net/download.php
首頁:http://www.smarty.net/

安裝方法:
解壓縮到網頁的資料夾底下
資料夾名稱位子隨便只要你記住

使用方法:

在要使用smarty的php網頁code裡
加入
require_once('C:/www/lib/Smarty.class.php');//smarty一定要include的檔案

$smarty = new Smarty(); //新增一個新物件

//這裡要設定,也要先開資料夾給它們
$smarty->template_dir = 'C:/www/templates/'; //這裡是指向你樣板放的地方,也就是HTML的地方
$smarty->compile_dir = 'C:/www/templates_c/'; //這裡是指向暫存檔,一定要有的
$smarty->config_dir = 'C:/www/configs/'; //這個我不知道耶,沒用過
$smarty->cache_dir = 'C:/www/cache/'; //這個我也不知道耶,也沒用過

$smarty->left_delimiter = '<{'; //這裡一定要設,因為預設為{},很容易衝突到
$smarty-right_delimiter= '}>'; //這是用在HTML裡,使smarty知道它是變數

//$smarty->debugging = true; //他會跳出視窗,顯現出詳細內容,變數,使用的HTML等等
//可以先註解起來,要用的時候再取消會比較方便

接下來要傳值給smarty的變數裡使用的語法
$smarty->assign('title', $title);
'title' 是在HTML裡的設的變數名稱
$title 是要傳給它的值

接下來就是合成HTML的語法
$smarty->display('smarty.htm');
smarty.htm 為你放在templates底下你想要合成的檔案名稱

還要有HTML的檔案
名稱副檔名都隨便
只要是html語法就可以
在HTML裡想要被smarty讀到都用<{}>來括起來 //前提是有做上面的設定
這樣smarty才能讓php和html合成起來放在templates_c裡面

<{$var}> //為變數,只要有assign給smarty,就會合成上去


範例:
smarty.htm
<html>
  <head>
    <title><{$title}></title>
  </head>
  <body>
    <{$body}>
  </body>
</html>
smarty.php
<?php
  require_once('C:/www/lib/Smarty.class.php');
  $smarty->template_dir = 'C:/www/templates/';
  $smarty->compile_dir = 'C:/www/templates_c/';
  $smarty->config_dir = 'C:/www/configs/';
  $smarty->cache_dir = 'C:/www/cache/';
  $smarty->left_delimiter = '<{';
  $smarty-right_delimiter= '}>';
  //$smarty->debugging = true;
  $title = "這是smarty的測試網頁";
  $smarty->assign('title', $title);
  $smarty->assign('body', "這是body顯示的變數");
  $smarty->display('smarty.htm');
?>

unlink()

unlink()
將伺服器的某個檔案刪除
使用方法
unlink(伺服器路徑);

del.php
<?php
  $DestDIR = "c:/www";
  $ServerFilename = "test.txt";
  $fh = fopen($DestDIR . "/" . $ServerFilename, 'a'); //注一
  fwrite($fh, 'Hello world!'); //注一
  unlink($DestDIR . "/" . $ServerFilename);
?>

*注一 : 為C語言的語法,在PHP裡可以用。

copy()

將伺服器的檔案複製到目的地
通常使用於檔案上傳
使用方法
copy(來源檔案,目標檔案);

範例:
upload.htm
<html>
  <head>
    <title>上傳範例</title>
  </head>
  <body>
    <form enctype="multipart/form-data" action="upload.php" method="post">
    檔案路徑:<input type="file" name="file_path"><br>
    <input type="submit" name="Submit" value="上傳">
  </body>
</html>


upload.php
<?php
  $DestDIR = "C:/www";
  $ServerFilename = "data";
  if (!empty($_FILES['file_path']['name'])) {
    if ($_FILES['file_path']['size'] > 1024*1024*2) {
      if ($_FILES['file_path']['type'] == "image/jpeg") {
        check = copy($_FILES['file_path']['tmp_name'], $DestDIR . "/" . $ServerFilename . ".jpg");
        if(check)
          echo "以上傳完成";
        else
          echo "上傳失敗";
      }
      else
        echo "檔案類型不對";
    }
    else
      echo "上傳檔案太大";
  }
  else
  {
    echo "沒有檔案";
    echo "錯誤資訊:" . $_FILES['file_path']['error'];
  }
?>

在Blogger裡面有程式區

CODE {
display: block; /* fixes a strange ie margin bug */
font-family: Courier New;
font-size: 14px;
overflow:auto;
background: #f0f0f0 url(http://klcintw.images.googlepages.com/Code_BG.gif) left top repeat-y;
border: 1px solid #ccc;
padding: 10px 10px 10px 21px;
//max-height:200px;
line-height: 1.2em;
}

$_FILES

在form裡需加入
enctype="multipart/form-data"
才會上傳
上傳後使用$_FILES才可以讀取
使用方法
$_FILES[名稱][參數名稱]

$_FILES['file_path']['name'] >> 上傳檔案的名稱
$_FILES['file_path']['tmp_name'] >> 上傳後在伺服器的路徑和名稱
$_FILES['file_path']['size'] >> 上傳檔案的大小
$_FILES['file_path']['type'] >> 上傳檔案的類型
$_FILES['file_path']['error'] >> 錯誤訊息

範例:
upload.htm
<html>
  <head>
    <title>上傳範例</title>
  </head>
  <body>
    <form enctype="multipart/form-data" action="upload.php" method="post">
    檔案路徑:<input type="file" name="file_path"><br>
    <input type="submit" name="Submit" value="上傳">
  </body>
</html>

upload.php
<?php
  if(!empty($_FILES['file_path']['name'])) { //有上傳檔案
    if ($_FILES['file_path']['size'] > 1024*1024*2) { //最大2MB 
      echo "以上傳完成";
      echo "在伺服器裡的位置和名子:" . $_FILES['file_path']['tmp_name'];
      echo "檔案名子:" . $_FILES['file_path']['name'];
      echo "檔案大小:" . $_FILES['file_path']['size'] . "btyes";
      echo "檔案類型:" . $_FILES['file_path']['type'];
    }
    else
      echo "上傳檔案太大";
  } else {
    echo "沒有檔案";
    echo "錯誤資訊:" . $_FILES['file_path']['error'];
  }
?>