網頁

2011年9月30日 星期五

Perl: DBI 查詢 use fetchrow_hashref

今天遇到了一個現象,讓我花了好多時間,最後才查清楚怎麼回事,手動查詢資料庫,明明 table 內有資料,程式用 fetchrow_hashref 查詢就是沒資料....
my $ref = $sth->fetchrow_hashref();
print "name=$ref->{'NAME'}, address=$ref->{'ADDR'}\n";
執行結果:
name=, address=

會造成這樣的原因是因為大部分的資料庫,資料表的欄位名稱不分大小寫,而 perl 的 hash ,其 key 的部分是區分大小寫的,在這情況下會帶來不小的困擾,造成上面語法無法取得資料。
為了避免潛在大小寫不匹配的問題,必須透過 NAME_uc 或 NAME_lc 屬性來告知 fetchrow_hashref 強制欄位名稱為大寫或小寫。
my $ref = $sth->fetchrow_hashref('NAME_lc);    # use lowercase names
or
my $ref = $sth->fetchrow_hashref('NAME_uc);    # use uppercase names
perl 使用 DBI 來查詢資料庫資料,有好幾種函數可以使用,雖然這邊使用 fetchrow_hashref ,但他並不是最好的選擇,因為它的效率沒有像 fetchrow_array 或 fetchrow_arrayref 那麼好。

閱讀全文...

紙模:章魚鋼鐵人

小孩一看到就說很像章魚,完成後,真的非常像,章魚鋼鐵人誕生了....
採用噴墨印表紙,彩色噴墨列印,在貼在另一張紙上增加厚度,但手部好像太厚了,誤差很大。


很像章魚吧


閱讀全文...

紙模:Link in Legend of Zelda

林克,薩達爾傳說的經典角色,兩隻小的簡單又有型,感覺非常Q,很容易完成。大的反而感覺不太對味。
圖紙張數:紅 A4x1 綠小 A4x2 綠 A4x2
完成尺寸:紅 8.5 (公分) 綠小 8.5 綠 11.5
用紙種類及輸出方式: 噴墨印表紙,彩色噴墨列印,在貼在另一張紙上增加厚度





閱讀全文...

2011年9月28日 星期三

開機時出現指令碼錯誤 del.icio.us網站

開機時會出現一個網址指令碼錯誤,顯示為 http://del.icio.us/js/playtagger
第一次遇到,真的嚇了一跳,以為電腦中毒了

最後終於找到原因,原來是 yahoo 輸入法的常駐程式在搞鬼,過幾天應該會修正好
閱讀全文...

2011年9月26日 星期一

Perl: 快速分解檔案路徑及名稱。 use File::Basename

不管使用什麼程式語言,常常會遇到要拆解檔案路徑和名稱的情況,有些有提供api使用,有些要自己手動來完成,Perl 則提供了一個好用模組來快速解決這問題。
範例如下:

#!/usr/bin/perl

use strict;
use warnings;
use File::Basename;

my $fullpath='YourFileFullpath';
my ($name, $path, $suffix) = fileparse($fullpath);
print "name=$name\n";
print "path=$path\n";
print "suffix=$suffix\n";

結果:
# On Unix
$fullpath="/foo/bar/baz";
# returns
$name="baz", $path="/foo/bar/", suffix="";


# On Windows
$fullpath='C:\foo\bar\baz';
# returns
$name="baz", $path='C:\foo\bar\', suffix="";

# get file name, It does NOT always return the file name portion of a path as you might expect. To be safe, if you want the file name portion of a path use fileparse() .
$fullpath="/foo/bar/baz";
my $name = basename($fullpath);
#return
$name="baz"
閱讀全文...

2011年9月21日 星期三

在CentOS (5.x) 開啟ftp(port 21)

CentOS 安裝完成後,預設只開放 Port 22 供外面連結,如要開放其他 port,如 ftp(port 21),要如何進行??

1. 察看 port 21 是否 listen
# netstat -tulnp | grep 21

2. 如 port 21 沒 listen, 啟動 vsftpd
# /etc/init.d/vsftpd start

3. 修改 iptables-config
# vim /etc/sysconfig/iptables-config
將 IPTABLES_MODULES 修改如下,兩模組間用一個空白區隔
IPTABLES_MODULES="ip_nat_ftp ip_conntrack_ftp"

4. 修改 iptables
# vim /etc/sysconfig/iptables
複製 --dport 22 那一行到下一行,再修改 22 -> 21
ex:
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT

5. 重啟 iptables
# /etc/init.d/iptables restart

6. 察看 iptables 現在運作的 rule
# iptables -L -n

7. 再預設的情況下,CentOS 的 ftp 並允許實體帳號登入取得家目錄的資料,所以下達 dir 不會有任何資料顯示(此為SELinux的限制,Linux 核心2.6之後版本,SELinux預設是啟動的)。
顯示 SELinux 相關設定
# getsebool -a | grep ftp
...
ftp_home_dir=off <- 要on

# setsebool -P ftp_home_dir=1
閱讀全文...

2011年9月17日 星期六

紙模:小綠龍

簡單又好完成的一個模,雖然沒像鋼彈那麼複雜,但深受小孩喜愛,所以一定要做兩隻,不然會搶翻了。
成品因為圖紙是在印表機缺少一色的情況下,變成很不一樣。

整個完成的過程如下:

頭部

嘴吧

頭上的角

耳朵

身體

尾吧





翅膀


閱讀全文...

2011年9月12日 星期一

模型:鋼彈:RX-93 NU Gundam

RX-93 ν 鋼彈(拉丁字母:Nu Gundam),是動畫片機動戰士鋼彈系列中的電影逆襲的夏亞中登場的一型機動戰士,為阿姆羅·雷所駕駛。

U.C.0093年,夏亞·阿兹纳布尔所領導下的新吉翁對聯邦發動了第二次新吉翁戰爭,而與之前布萊德·諾亞任司令,阿姆羅·雷任MS隊指揮官,為搜尋新吉翁殘黨而創立的聯邦軍特別行動部隊隆德·貝爾交戰。
一方面由於聯邦維持軍事威懾的需要,另一方面又擔心軍隊再度泰坦斯化,聯邦雖然對隆德·貝爾的戰鬥配置有所強化,但還只是限定在一定範圍內。阿姆羅也只得到Z計劃發展的產品RGZ-91 Re GZ作為指揮官用機。
經過與新吉翁方面先進MS的數次交戰,阿姆羅深感Re GZ已經大大落後於時代,在聯邦拒絕解封以前大戰被封存的各種以鋼彈為主的先進MS之後,阿姆羅唯有委託月面企業亞納海姆為其研製專用機,便是此RX-93 ν 鋼彈。
新機體設參考過去鋼彈系列,並且加上阿姆羅本人過去長年培育MS駕駛員的經驗。而機體名為亞納海姆社製鋼彈第11號,開發代號名為[ν]。
而考慮到實際戰鬥需要,ν 鋼彈的開發同時注重了泛用性和機體性能,開發觀點放棄了在之前格里普斯戰爭和第一次新吉翁戰爭中流行的可變式、分體變形等結構,反而回歸MS機體的設計原點。
在另一方面,考慮到戰爭可能會長期化的狀況,本機體開發也強調信賴性和耐久性,除了部份零件外(精神感應系統),許多零件是採用聯邦軍規格,所以可以直接從量產型MS上調度零件,大大減少了專用機整備困難的狀況。


武器裝備上,除去接近防禦用火神炮外,ν 鋼彈裝備有亞納海姆研發的連射式光束步槍或稱光束機槍;背包中還可以裝備大型火箭炮。另外在盾牌內還隨裝有小型光束炮和飛彈。此外,ν 鋼彈是第一台裝有感應炮武器(精神感應系統)鋼彈系MS。
感應炮是阿姆羅考慮到為克制新吉翁側各種新人類/強化人用MS的感應炮而增 框架,這使得感應炮的研製問題終於得到解決,經過進一步的修改,ν 鋼彈的感應炮最終被設計為可摺疊的長條板形,由於六隻感應炮在收納狀態時外形如同一隻翅膀,阿姆羅便將其命名為翼狀感應炮(Fin Funnel)。也因翼狀感應炮收納在背部,而將一個光劍插口轉移到了左臂。
但之前阿納海姆聲稱自己沒有精神感應技術,對於如何拿出精神感應框架不禁令人生疑。原來,新吉翁方面的MS同樣是委託阿納海姆製造,夏亞也因此得到了ν 鋼彈的設計資料,出於一種英雄惜英雄以及為了能夠與阿姆羅公平地一決勝負的心理,夏亞特意將精神感應框架技術提供給了阿納海姆。(在另一個小說版本中則是夏亞在月神5號作戰中故意讓邱尼的座機乍德·多加被阿姆羅捕獲從而令其掌握精神感應技術)
由於前方迫切的戰鬥需要,ν 鋼彈在已經擁有生化感應電腦的基礎上再裝上精神感應框架後沒有經過充分的測試便投入了戰鬥,在戰鬥中,阿姆羅意外地發現由於精神感應框架對駕駛員腦電波產生特殊反應,翼狀感應炮可以放出一道粒子擾亂膜以使敵人的光束及實彈武器攻擊無效化(這種防禦手段並非是I力場的一種,而可以近似的認為是uc後期出現的光束盾早期型)。在之後阿克西斯墜落作戰,與夏亞的沙薩比交戰時,ν 鋼彈展現出機體擁有的高運動性能,在實力相近的兩人戰鬥後,阿姆羅成功的擊敗夏亞的沙薩比,之後阿姆羅駕駛受損的機體意圖阻止阿克西斯墜落,在可能是精神感應框架產生的共鳴推離阿克西斯的光芒中,ν 鋼彈最終帶著沙薩比的逃生艙失蹤。
在逆襲的夏亞小說版中,阿姆羅最終駕駛的是完整測試完成的ν 鋼彈 — RX-93 ν-2 Hi-ν Gundam,而夏亞所駕駛的亦為沙薩比的改進型—MSN-04II夜鶯。




閱讀全文...