25 1月 2010 不管信甚麼神,過度了就是不好 — 基督教的偏激
 |  Category: 碎碎唸  | Leave a Comment

本身一直沒有甚麼宗教信仰,通常是叫我拿香我就拿,叫我禱告我就禱。 我認為那些都只是讓人心安的儀式罷了。
但是總是會碰到許多硬是要你認同他們的偏激教徒,其中最最最嚴重的就是 “基督教”。
家中有一個家裡都對她很反感的姐姐,全家都很不喜歡跟她在一起有任何的言語;因為她都很喜歡玩文字遊戲,需要我們對她所說的每一個字句做認同的動作;若我們只是不理她任她講,她還會一直追問,一直就是要得到你很確定的表情且認同了她的意見後才罷休。

姐姐本身是唸心理學的,但是她完全不知道自己心理上的毛病真的很大。 之前她甚至還跑去所謂的 “忠僕號” 去傳教,當時我爸還在的時候,她邀請我們全家上船去聽她介紹。 當然是很敢謝她的細心介紹啦,只是她過份偏激了。 不段的設法傳教,且講到後面我們都真的很累了,想休息想回家了,她還是硬要留我們。 最後我們對她說好了,很累想走了; 她就又開始生氣,且擺出那種很臭的臉 (怕我們沒有看到那種)。 其他的比較正常的教徒看到她都還會問發生甚麼事了,她就都會不理人擺臭臉。(心胸很窄)  -_- 甚至是當著我們的面跟她們傳上的外國人吵架,外國人很有風度的請她冷靜下來,不要這樣子;但是她卻是一副我吵贏了很光容的臉(我們全家都覺得很丟臉 -_-)。

其實他們船上的人都很好人,不會像她一樣過份的迷信。
之前我阿公去世的時候,全家都很傷心,也都是拿香穿孝服的。 但是就只有她一個不願意配合;我說拿著揮兩下配合就好她也不願意;那這也就算了。 她開始嫌孝服很可笑,開始在那邊做造型且玩樂。 我爸看到了真的恨的牙癢癢的,連我都對她很反感,全家人都在傷心,就她一個在那邊笑在那邊玩樂。 叫她不要跟過來了還死要跟;又不願意配合。

不久前我爸也走了,一樣不拿香。 還真寧願妳不要過來,如果要過來請配合。

最近我快結婚了。 她又是問一堆有的沒的,說婚前不可以同居不可以幹麻的。 一樣又是一副嘴臉很討人厭。
其實她的個性本來就很討人厭了,但是她都不懂的檢討自己只會怪別人說人不是。
我本身並不反對任何人信甚麼教,但是因為她的關係。 我變的非常討厭基督教; 為什麼不能和其他的神明合平相處,信別的神就是要去破壞人家,說些很奇怪的話。 甚麼信鬼神,偶像的 (那你們信耶穌的最好就不是信鬼神信偶像啦)

甚麼不信耶穌的只可以下地獄,但是之前做壞事的人在死前信耶穌就可以上天堂? 無理。
不可以婚前性行為,不可以同居? 都甚麼時代了。
還高調的反對同性戀。 他們又沒做壞事 -_-
個人認為是一個很自私的宗教,再配合上個性偏差的人… 那就更怪了。

07 1月 2010 用 PHP 讀取 Excel 檔案。
 |  Category: 資訊科技  | Leave a Comment

最近因為公司希望我去做一個可以直接讀取 Excel 檔案中的值並更新到資料庫的網頁程式。
就找到了 phpExcelReader 的套件,經過了幾次的測試發現它有一些編碼及格式上的問題。 phpExcelReader 並沒辦法處理某些 Excel 檔案,目前我也還沒找到原因;只知道這樣子不穩定的現象對我會造成困擾。 所以放棄了這一個套件。

接著又再找到另外一套叫 PHPExcel 的套件,他的功能更是強大,且可對 excel 檔案做寫入的動作。
PHPExcel 可以在 http://www.codeplex.com/PHPExcel/ 被找到。

網路上有很多人對 PHPExcel 有一種誤解,認為它只能存取 Excel 2007 的檔案。 其實現在新的版本已經把 Excel 2003 等早期的 Excel 存取支援做進去了。 以下小示範一下如何將一個 Excel 讀入後轉成 Array。

ini_set(”memory_limit”,”1024M”);  //設定php可使用的最大記憶體量,如果你的 Excel 只是幾十KB的話,可以將這個值設小一點。
require_once(’Classes/PHPExcel/IOFactory.php’);
$objPHPExcel = PHPExcel_IOFactory::createReader(’Excel5′); //設定為舊 Excel 版本相容
$objPHPExcel = PHPExcel_IOFactory::load(”j88.xls”);  //設定要讀取的檔案
//$objWorksheet = $objPHPExcel->getActiveSheet();  //設定讀取當前頁面
$objWorksheet = $objPHPExcel->getSheet(0);  //設定讀取第一個頁面
$array_out[] = null; //建立一個空 array
foreach ($objWorksheet->getRowIterator() as $row_key => $row){  //開始做 row 迴圈
$cellIterator = $row->getCellIterator();     //抓取這一行的 cell 資訊
$cellIterator->setIterateOnlyExistingCells(false);  //讀入整行的cells,如果為空就回傳 null
foreach ($cellIterator as $cell_key => $cell){  //做 cell 迴圈
$array_out[$row_key][$cell_key] = $cell->getValue().”; //將每一個row 的 cell 寫入 array
//上面會看到最後有 .” 是為了要強破 array 寫入的是字
//串,不然到時候 array 裡存的會是 object
}
}
echo “<pre>”;
print_r($array_out);  //輸出的 array
echo “</pre>”;

06 1月 2010 Linux 沒辦法裝在超過 2TB 的媒體上?
 |  Category: 資訊科技  | Leave a Comment

昨天在公司的一位前輩在機房安裝一台 RAID 5 加總超過 2TB 的主機時遇到了問題。 後來他把那台 2U 且長版的主機整台抱回了公司(首先要對他的耐力致敬, 主機插滿了硬碟共有 20多公斤)

回來公司後就由我接手了,一開始有在網路上看了一下為什麼 CentOS 在超過 2TB 的 disk array 會沒辦法安裝,連抓都抓不到硬碟。 發現原來是因為 boot loader 還沒辦法使用 GPT 這種可以超過 2TB 限制的硬碟分割表。

我也沒有時間再去深入研究怎麼硬裝。 所以我改從 RAID 的設定下手。 6顆 500G 的硬碟在 RAID 5  下變共有 2.5T 的總空間,既然 CentOS 不讓我用這 2.5T 的 array,那我就設定這個 RAID 5 成兩顆 1.25TB 的硬碟。 在安裝時被抓到並辨識為 sda 及 sdb。

直接改用 LVM 的方式把這兩顆綁起來;因為單顆變為 1.25TB,成功的避開了 2TB 的限制。  裝起來後,重開,正常! 收工。

所以,如果有朋友想要將一個系統裝在超過 2TB 的媒體時,要特別注意一下這個問題。
這 2TB 並不是說直接把他切成兩顆 1TB  (sda1, sda2) 就有辦法突破 2TB 限制,目前我所知道比較快的方法還是要從 raid 設定下手,讓 Linux 把這 2TB 看成是 sda 及 sdb…..

19 11月 2009 LVM 快速上手說明
 |  Category: 資訊科技  | Leave a Comment

LVM 快速上手說明。

使用 LVM 需要先知道幾個名詞,PVPEVGLV

PV = Physical Volume
可以看做成一個實體硬碟,或是一個實體硬碟的某一個分割區。

PE = Physical Extend

也就是實體延伸區塊,若還是不懂的話,就直接看做是一個區塊就好,每一個區塊的大小都是固定的。 一個 20MB PV 可以被切成是一個 20MB PE,或是兩個 10MB PE,又或是 4 5MB PE

PE LVM 所能改變磁碟空間大小的最小單位,若 PE 設定為 1GB,則每一次增大或縮小的空間都必須以 1GB 為單位。
另外,LVM 65534 PE 總數的限制。 如果將 PE 容量設定的太小,會造成將來邏輯硬碟的容量被限制住,無法再加大。 Ex. 4M*65534/(1024M/G) = 256GB

VG = Volume Group

一個 VG 就是多個 PE 所組成的一個大空間,這個空間受限於 PE 的區塊大小。 最多只能有 65534 PE 組成一個 VG

LV = Logical Volume

LV 的大小最大可以是一整個 VG,或是一部份的 VG 簡單的說就是一個可以被使用者運用,格式化的一個儲存裝置。

建立 PV

pvcreate /dev/sda # /dev/sda 建立一個 PV

建立 VG

vgcreate -s 1024M dogvg /dev/sda #/dev/sda 這個PV 建立成 1GB 為一個 PE 單位,名為 dogvg VG

vgchange -a y #設定 VG 為啟動狀態

增加 VG 容量

pvcreate /dev/sdb #初始化 /dev/sdb PV

vgextend dogvg /dev/sdb #/dev/sdb 這個 PV 也加入到 dogvg 這個 VG


建立 LV (最後可以當成一個硬碟使用的階段)

lvcreate -L 100G -n doglv dogvg #建立一個名為 doglv,容量100GBLV dogvg 這個 VG 上。

開始使用階段

mkfs -t ext3 /dev/dogvg/doglv #格式化這個 LV

mkdir /mnt/lvm

mount /dev/dogvg/doglv /mnt/lvm #掛載後即可使用

放大 LV 容量

lvresize -L +100G /dev/dogvg/doglv #加大 100G 的容量到現有的 LV

resize2fs /dev/dogvg/doglv #線上變更 filesystem 大小

縮小 LV 容量沒辦法做線上調整,要做的話必須 umount,且 resize fs 的時候只能設定將一個 FS 設定為最終大小,沒辦法設定拿走多少的容量;所以在做縮小的時候要先 df -h 並將縮小一定容量後的最終大小計算出來才可以動作。

umount /mnt/lvm

resize2fs /dev/dogvg/doglv 5000M #設定最終的 FS 大小為 5GB

lvresize -L 1000M /dev/dogvg/doglv 設定將這個 LV 減少 1GB 的容量

參考網網站 http://linux.vbird.org/linux_basic/0420quota.php#lvm

01 11月 2009 iSCSI 快速安裝
 |  Category: 資訊科技  | Leave a Comment

1. iscsi快速安裝法 (CentOS)

1.1 安裝 iscsi 公用程式

yum install iscsi-initiator-utils

1.2 啟動 iscsid

/etc/init.d/iscsid start

/etc/init.d/iscsi start

1.3 尋找 target (範例中 target ip 192.168.101.51 52)

iscsiadm -m discovery -t sendtargets -p 192.168.101.51 #51 or 52 just pick one

/etc/init.d/iscsi restart #in case if system forget to update iscsi device

系統會將 target iqn 列出,接著做 login 的動作

iscsiadm -m node –targetname TARGET_IQN –login #login

fdisk –l #now you should see 2 or more storages ready for use.

1.4 將以下指令寫入 rc.local,以方便開機自動掛載 iSCSI

iscsiadm -m node –targetname TARGET_IQN –login

其他可能會用到的指令

1. logout iscsi

iscsiadm -m node –targetname TARGET_IQN –logout #logout

2. delete iqn

iscsiadm -m node –op delete –targetname TARGET_IQN #delete name