tag:blogger.com,1999:blog-83954773925597936062024-03-13T19:36:21.484+08:00IT 台灣郎IT 台灣郎http://www.blogger.com/profile/09035300800137967478noreply@blogger.comBlogger152125tag:blogger.com,1999:blog-8395477392559793606.post-3135221170905960382015-12-12T11:46:00.000+08:002015-12-12T11:46:27.384+08:002015年大台北地區慈濟歲末祝福時間表<div class="separator" style="clear: both; text-align: center;">
免票, 歡迎大家參加</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-v1nN59rprBA/VmuYLFDowRI/AAAAAAAABHY/7aThBbeFjYQ/s1600/20151209_191958.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="180" src="http://3.bp.blogspot.com/-v1nN59rprBA/VmuYLFDowRI/AAAAAAAABHY/7aThBbeFjYQ/s320/20151209_191958.jpg" width="320" /></a></div>
<br />IT 台灣郎http://www.blogger.com/profile/09035300800137967478noreply@blogger.com0tag:blogger.com,1999:blog-8395477392559793606.post-5786279503131400912014-06-25T12:06:00.000+08:002014-06-25T12:17:04.700+08:00PMP 證照考取心得由於中華電信很多同事都在長宏取得 PMP 證照,且對於課程也都很推崇故自己也選擇來長宏上課,在開課前就有聽同事說長宏上課的過程相當精實,果不其然在第一堂課就體會到 Roger 老師的震撼教育,團隊組建、一案通主題討論再加上許多專案管理知識,上完課後覺得超累但很充實。除了上課之外,長宏還規定需要有讀書會的運作並且會指派熱心的教練幫助大家一起努力,現在回想起來這其實是很重要的共好機制,建議各位一定要參加,因為在上課或做題目時多少會有觀念不清楚的地方,可以透過讀書會跟同學與教練一起討論,透過「團隊共好」的力量幫助自己找出問題,同時PMP的考題很多是選項都對但是要找出最佳解,這時候也可透過讀書會與同學討論解題的技巧,像有的題目需要看英文原始題目的關鍵字來解題也是透過讀書會跟同學學習的技巧。此外星期一到星期五的時間就是跟隨長宏規劃的時程進行上課前預習、下課後複習,做錯的例題跟隨堂考題目就落實長宏心法進行 Lessions Learned 發揮專案逐步完善的精神。<br /><br />但準備的過程人算不如天算在課程開始的第二週公司忽然又有新任務交辦,常常都要加班至很晚,忙完之後又經歷小孩腸胃炎住院,在這樣的狀態下第一次模擬考只考了54分,看到了電腦螢幕上顯示 Fail,自己不斷給自己心理建設,這只是一時的挫折,我不能放棄一定要跟上,還好教練有一直鼓勵大家要趕上進度,此外長宏有很強的輔考機制讓我半夜在醫院也能利用網路練習題目及觀看 eLearning。所幸後來公司事情告一段落,小孩身體也慢慢的恢復,之後模擬考都有達到 70 分以上的水準,到了倒數第二週光明老師的道德課程中介紹許多長宏題目的設計與考試之間難度的比較,記得課堂老師說 200 題模擬考有 70 分的話報考就對了,前面有那麼多長宏的學長姐作為你們的後盾,更加深了考上 PMP 的信心;最後的總複習課程,更建議大家一定要去,透過正普老師清晰的解題技巧與近期題型的解析,再把觀念不清楚的地方都加以釐清。<br /><br />經過前面八週魔鬼訓練後,其實真正上場考試時並不會緊張,因為整個準備的過程很扎實,依照長宏規劃的行事曆完成25題牛刀小試、模擬考100題、章節測驗360題、模擬考200題,總複習20題驗證過自己的學習進度及實力。讓我於總複習課程結束後第二天就上場,個人考試的經驗最好時間安排在下午,考試當天早上盡量放鬆,大約 10:30 左右就可以到考場,11:00 就可以吃午餐,當天就保持自己最舒服的狀態,雖然上場時難免緊張但專案管理的相關知識都已在準備過程內化於心中,在經過三個多小時馬拉松式的考試後,在很有把握的情況下按下送出,經歷過人生最長的 30 秒,螢幕顯示小小的 Congratulations,全部的辛苦都化為喜悅,我也是PMP了!<br /><br />很感謝長宏完整的規劃、事事如意隊夥伴的共好支持,還有這段期間家人、同事及朋友的幫忙讓我能夠在不到兩個月的時間內就獲得PMP,要另外感謝育芸(yoyo)教練每週六的讀書會給我們醍醐灌頂、半夜還會發 line 給我們分析成績跟指導如何準備;感謝怡祺(ichi)教練常鼓勵大家並提供很多準備考試的小撇步,同時鼓勵仍在奮戰中的夥伴們加油,很快的我們一定可以大家 all pass 一起慶祝!IT 台灣郎http://www.blogger.com/profile/09035300800137967478noreply@blogger.com0tag:blogger.com,1999:blog-8395477392559793606.post-91160910638023703822014-06-10T09:38:00.000+08:002014-06-10T09:38:28.537+08:00MS SQL Server table name 包含 - (連字符號, dash, hyphen)由於工作需要必須去查另一個 team 建的 SQL Server 資料庫,但裡面的資料表(table)名稱為 wifiqoe_kpi-eap-sim,用一般 SELECT * FROM wifiqoe_kpi-eap-sim 查會出現 <b>"Incorrect syntax near '-'."</b>,看起來是資料表名稱包含了 <b>-</b> 的問題,用了一些跳脫字元(escape character)像是用 \- 或 -- 都沒用,後來查了一下原來是要在表格名稱前後加上 brackets 也就是中括號 [ ] 就可以了,所以最後的 SQL 語法是 SELECT * FROM <b>[wifiqoe_kpi-eap-sim]</b>IT 台灣郎http://www.blogger.com/profile/09035300800137967478noreply@blogger.com0tag:blogger.com,1999:blog-8395477392559793606.post-52685009787731728532014-05-30T11:53:00.002+08:002014-05-30T13:34:33.712+08:00sftp 使用自訂之 private key由於最近要登入一台新的 FTP server,之前某同事已申請過此 FTP server 的程式用帳號密碼,因為時效很趕的關係,所以跟同事拿了他程式帳號的 private key,準備在另一台主機採用 key 交換的方式利用相同 FTP 帳號(不需輸入密碼登入 FTP server),研究了一下,要選擇自訂的 private key 指令如下:
<br />
sftp <b>-o IdentityFile=/your/private/key</b> user@sftpserver<br />
<br />
這樣就可以不破壞原來主機上的使用者原本的 private key 下(或根本沒有這個使用者帳號),利用 key 交換方式登入另一台主機
<br />
P.S. Perl 的 SFTP 模組建議採用 <a href="http://search.cpan.org/~salva/Net-SFTP-Foreign-1.77/lib/Net/SFTP/Foreign.pm">Net::SFTP::Foreign</a>IT 台灣郎http://www.blogger.com/profile/09035300800137967478noreply@blogger.com0tag:blogger.com,1999:blog-8395477392559793606.post-46066788329985734382014-05-23T11:09:00.001+08:002014-05-23T11:44:39.995+08:00快速篩選 Syslog 時間維運人員發現網路設備有問題,然後臨時要前幾天的中午十二點到當天結束這段時間該網路設備的 syslog,要怎麼快速處理呢?<br />
<br />
step1 : 先 grep 該設備TP2-GW-1001(192.168.10.20) 的 IP 並存成 20140519_TP2-GW-1001.log<br />
<b>cat 20140519_all.log | grep '192.168.10.20' > 20140519_TP2-GW-1001.log</b><br />
<br />
step2 : 再利用 awk 指令針對 syslog 第三欄位(時間) 進行篩選,並填入時間條件<br />
<b>cat pwlangw.log-20140519 | awk ' $3 >= "12:00" && $3 <="24:00" ' > </b><b>20140519_TP2-GW-1001-12-24.log</b><br />
<br />
搞定收工<br />
<br />
<br />
<br />IT 台灣郎http://www.blogger.com/profile/09035300800137967478noreply@blogger.com0tag:blogger.com,1999:blog-8395477392559793606.post-66577344844570051352013-03-12T09:55:00.001+08:002013-03-12T10:01:12.893+08:00[Perl] Moose 範例 - 銀行篇<code>
#!/usr/bin/env perl<br />
<br />
package BankAccount;<br />
use Moose;<br />
use Data::Dumper;<br />
<br />
has 'balance' => (<br />
is => 'rw',<br />
isa => 'Str',<br />
default => 0<br />
);<br />
<br />
sub deposit {<br />
my ($self, $amount) = @_;<br />
$self->balance( $self->balance + $amount);<br />
}<br />
<br />
sub showBalance {<br />
my $self = @_;<br />
print "The balance is : \n";<br />
<br />
} <br />
<br />
my $savingAccount = BankAccount->new( balance => 250 );<br />
print Dumper($savingAccount);<br />
$savingAccount->deposit(100);<br />
print Dumper($savingAccount); <br />
$savingAccount->showBalance();<br />
</code>IT 台灣郎http://www.blogger.com/profile/09035300800137967478noreply@blogger.com0tag:blogger.com,1999:blog-8395477392559793606.post-52241119835861365712013-01-23T11:49:00.005+08:002013-01-23T11:58:06.573+08:00[Perl] Linux 上使用 Perl 查詢 Microsoft SQL ServerPerl 連接 MySQL 這種就不用多說了,Google 一下就很多教學 今天來談的是 Linux 裡面如何查詢微軟的 MS SQL Server<br />
<br />
<b>簡介如下</b><br />
<br />
<b>建置環境 : CentOS v6.2</b><br />
<b>程式語言 : Perl v5.10.1 </b><br />
<br />
<b><b>一開始需先安裝 FreeTDS 程式,但是 yum 預設並沒有這個套件,所以要先</b>前置作業下載 <a href="http://dl.fedoraproject.org/pub/epel/" target="_blank">CentOS epel RPM</a> , 記得看你的 CentOS 版本是 5 還是 6 找到對應的目錄去下載</b><br />
<br />
<b>安裝步驟</b><br />
1. sudo su -<br />
2. rpm -Uvh epel-release-6-8.noarch.rpm<br />
3. vim /etc/yum.repos.d/epel.repo,把 [epel] 裡面的註解取消 <br />
4. yum update<br />
5. yum install freetds.x86_64<br />
6. yum install freetds-devel.x86_64<br />
7. vim /etc/freetds.conf,新增如下<br />
<br />
<code>
[SQLSERVER] <br />
host = your_sqlserver_hostname<br />
port = 1433<br />
tds version = 7.0<br />
</code>
<br />
<br />
<b>安裝完成後可以先執行 tsql 測試</b><br />
tsql -S sqlserver.hostname.com -U sqlusername -D your_db_name<br />
<br />
<b>進去後再下</b><br />
select * from sys.Tables;<br />
GO<br />
quit<br />
<br />
<b>也可以改成 "一行執行"</b><br />
printf "SELECT * FROM httpstatus\ngo\n" | tsql -S sqlserver.hostname.com -U sqlusername -P sqlpassword -D your_db_name<br />
<br />
前置作業完成後,再來要安裝 Perl 模組 DBD::Sybase,你沒看錯真的是 Sybase 模組(緣由請參考<a href="http://zh.wikipedia.org/wiki/Sybase" target="_blank">這裡</a>)<br />
<br />
<b> 安裝步驟</b><br />
1. export SYBASE=/usr (這行要有不然安裝時會出現找不到 sybase library 錯誤)<br />
2. cpanm DBD::Sybase<br />
<br />
都完成後終於要開始寫程式啦, 程式碼如下<br />
<code>
#!/usr/bin/perl<br />
<br />
#use lib ('./modules');<br />
use DBI;<br />
use DBD::Sybase;<br />
<br />
my $database = "your_db_name";<br />
my $username = 'sqlusername';<br />
my $password = 'sqlpassword';<br />
<br />
#SQLSERVER 字串對應至 /etc/freetds.conf 裡面的 [SQLSERVER] tag<br />
$dsn = "DBI:Sybase:server=SQLSERVER;database=$database";<br />
<br />
my $dbh = DBI->connect($dsn, $username, $password) or die "Database connection not made : $DBI::errstr";<br />
<br />
my $sql = "SELECT TOP 5 * FROM httpstatus order by testtime desc";<br />
my $sth = $dbh->prepare( $sql );<br />
$sth->execute() or die "unable to execute query $sql, error $DBI::errstr\n";<br />
<br />
$rows = $sth->rows;<br />
<br />
while ( @first = $sth->fetchrow_array ) {<br />
foreach $field (@first) {<br />
print "$field ";<br />
}<br />
print "\n";<br />
}<br />
<br />
$sth->finish();<br />
undef $sth;<br />
$dbh->disconnect();<br />
<br />
print "Query successfully\n";<br />
</code>
<br />
資考資料 : <a href="http://dolio.lh.net/~apw/doc/HOWTO/HOWTO-Connect_Perl_to_SQL_Server.pdf">http://dolio.lh.net/~apw/doc/HOWTO/HOWTO-Connect_Perl_to_SQL_Server.pdf</a><br />
<br />IT 台灣郎http://www.blogger.com/profile/09035300800137967478noreply@blogger.com0tag:blogger.com,1999:blog-8395477392559793606.post-30283855390813419722012-08-15T10:15:00.000+08:002012-08-15T10:15:55.519+08:00快速尋找 Linux Process 並刪除以前的方法<br />
<br />
ps -ef | grep httpd<br />
然後再去 kill pid<br />
<br />
<br />
新發現的方法<br />
<br />
pgrep httpd 可以直接取得 pid 不用再 grep<br />
pkill 可以直接接 process name, 不用使用 pid<br />
<br />
<br />IT 台灣郎http://www.blogger.com/profile/09035300800137967478noreply@blogger.com0tag:blogger.com,1999:blog-8395477392559793606.post-30425745399021478632012-06-01T14:52:00.002+08:002012-06-01T14:52:41.096+08:00[MAC] iPhoto 照片檔案位置之前備份了 iPhoto,記錄一下實際照片存放的路徑<br />
<br />
<b>iPhoto 圖庫 -> Masters -> 2011 -> 01</b><br />
<br />
以上就代表 2011年1月的實際照片存放路徑囉IT 台灣郎http://www.blogger.com/profile/09035300800137967478noreply@blogger.com0tag:blogger.com,1999:blog-8395477392559793606.post-37496045413353981032012-05-10T17:20:00.000+08:002012-05-10T17:27:27.795+08:00[Perl] 陣列在副程式之間傳遞通常傳遞陣列都是傳一個 reference 的記憶體位址過去,而不會真正把整個 Array 傳過去(雖然也是可以)<br />
<br />
<b>傳遞到副程式時:</b>前面要加 \ ,讓 Perl 傳遞 reference 到 sub 內,副程式內用 scalar ($) 來接<br />
<b>副程式回傳後,要接收時:</b>要解析 reference (通常稱作 dereference),在外面加上 @{ } 來 dereference<br />
下面是一個簡單的範例<br />
<br />
<code>
#!/usr/bin/perl<br />
<br />
@mainAry = ("abc", "def");<br />#deference and expand the array<br />@returnAry = @{ &getInterface(\@mainAry) };<br />print "origin : @mainAry\n";<br />print "return : @returnAry\n";<br /><br />sub getInterface() {<br /> my ($rec_ref) = @_ ;<br /> $a_ref = [];<br />
foreach $values (@{ $rec_ref }) {<br /> push(@$a_ref, $values);<br /> print "push $values\n";<br /> }<br /> return $a_ref;<br />}
</code>IT 台灣郎http://www.blogger.com/profile/09035300800137967478noreply@blogger.com0tag:blogger.com,1999:blog-8395477392559793606.post-62655134131134535282012-05-04T17:32:00.001+08:002012-05-10T17:31:39.960+08:00[Perl] cpanm 搭配 CPAN::Mini 的設定方式之前的文章有介紹了 <a href="http://taiwanwolf.blogspot.com/2012/04/cpanplus-cpan-cpanmini.html" target="_blank">CPANPLUS 與 CPAN::Mini</a> 但是現在更好用的模組管理程式是 <a href="http://search.cpan.org/%7Emiyagawa/App-cpanminus-1.5011/bin/cpanm" target="_blank">cpanm</a> (發音為 cpanminus)安裝方式為<br />
<br />
<code></code><br />
<pre class="sh_perl sh_sourceCode"><code>curl <span class="sh_symbol">-</span>L <a class="podlinkurl" href="http://cpanmin.us/">http<span class="sh_symbol">:</span><span class="sh_string">//</span>cpanmin<span class="sh_symbol">.</span>us</a> <span class="sh_symbol">|</span> perl <span class="sh_symbol">-</span> <span class="sh_symbol">--</span>sudo App<span class="sh_symbol">::</span>cpanminus</code></pre>
<br />
<pre class="sh_perl sh_sourceCode">或直接下載 cpanm 檔案,本身是一隻 Perl 程式</pre>
<code></code><br />
<pre class="sh_perl sh_sourceCode"><code>curl <span class="sh_symbol">-</span>LO <a class="podlinkurl" href="http://xrl.us/cpanm">http<span class="sh_symbol">:</span><span class="sh_string">//xrl.us/</span>cpanm</a>
<span class="sh_keyword">chmod</span> <span class="sh_symbol">+</span><span class="sh_keyword">x</span> cpanm </code></pre>
<br />
<pre class="sh_perl sh_sourceCode">使用方式跟 CPANPLUS 比起來真的是 minus 許多,摘錄 cpanm 使用方式
如下</pre>
<code></code><br />
<pre class="sh_perl sh_sourceCode"><code> cpanm Test<span class="sh_symbol">::</span>More <span class="sh_comment"># install Test::More</span>
cpanm MIYAGAWA<span class="sh_symbol">/</span>Plack<span class="sh_number">-0</span><span class="sh_symbol">.</span>99_05<span class="sh_symbol">.</span>tar<span class="sh_symbol">.</span>gz <span class="sh_comment"># full distribution path</span>
cpanm <a class="podlinkurl" href="http://example.org/LDS/CGI.pm-3.20.tar.gz">http<span class="sh_symbol">:</span><span class="sh_string">//example.org/LDS/</span>CGI<span class="sh_symbol">.</span>pm<span class="sh_number">-3.20</span><span class="sh_symbol">.</span>tar<span class="sh_symbol">.</span>gz</a> <span class="sh_comment"># install from URL</span>
cpanm <span class="sh_symbol">~</span><span class="sh_string">/dists/</span>MyCompany<span class="sh_symbol">-</span>Enterprise<span class="sh_number">-1.00</span><span class="sh_symbol">.</span>tar<span class="sh_symbol">.</span>gz <span class="sh_comment"># install from a local file</span>
cpanm <span class="sh_symbol">--</span>interactive Task<span class="sh_symbol">::</span>Kensho <span class="sh_comment"># Configure interactively</span>
cpanm <span class="sh_symbol">.</span> <span class="sh_comment"># install from local directory</span>
cpanm <span class="sh_symbol">--</span>installdeps <span class="sh_symbol">.</span> <span class="sh_comment"># install all the deps for the current directory</span>
cpanm <span class="sh_symbol">-</span>L extlib Plack <span class="sh_comment"># install Plack and all non-core deps into extlib</span>
cpanm <span class="sh_symbol">--</span>mirror <a class="podlinkurl" href="http://cpan.cpantesters.org/">http<span class="sh_symbol">:</span><span class="sh_string">//cpan.cpantesters.org/</span></a> DBI <span class="sh_comment"># use the fast-syncing mirror</span>
cpanm <span class="sh_symbol">--</span>scandeps Moose <span class="sh_comment"># See what modules will be installed for Moose</span></code></pre>
<br />
<pre class="sh_perl sh_sourceCode">在這邊要介紹的是如果之前有用 CPAN::Mini 在本地 mirror 了
最新的 CPAN 模組庫,此時要配合 cpanm 使用的話</pre>
<code></code><br />
<pre class="sh_perl sh_sourceCode"><code>./cpanm --mirror /cpan/mirror --mirror-only 模組名稱</code></pre>
<br />
<pre class="sh_perl sh_sourceCode">P.S. /cpan/mirror 是 cpan local repository 的路徑</pre>IT 台灣郎http://www.blogger.com/profile/09035300800137967478noreply@blogger.com0tag:blogger.com,1999:blog-8395477392559793606.post-74513723828743432082012-05-03T17:23:00.000+08:002012-05-03T17:26:25.019+08:00[iOS] UITextview 拉到最下方文字無法完整顯示問題最近開發一個新聞閱讀軟體,裡面有些內容使用 UITextview 來呈現,呈現當然是沒有問題但是奇怪的是將卷軸拉到最下面後大概有兩行的內容會看不到,需要用手往上拉(捲動 scrollbar)才能看得到,經過一番查詢看來是 iOS 預設的呈現方式,我們必須自己插入一些空間讓文字能夠往上提一點而不會被隱藏起來,方法如下<br />
<br />
UITextview 名稱為 : newsTextView<br />
<pre><code>
UIEdgeInsets contentInset = newsTextView.contentInset; //產生一個 UIEdgeInsets 物件
contentInset.bottom = 45.0; //下方空白空間,視需求增減
newsTextView.contentInset = contentInset; //設定 UITextview 的 contentInset 屬性
</code></pre>
<br />
原始出處 : <a href="http://stackoverflow.com/questions/1582554/iphone-uitextview-leaves-room-for-2-lines-at-the-bottom">http://stackoverflow.com/questions/1582554/iphone-uitextview-leaves-room-for-2-lines-at-the-bottom</a>IT 台灣郎http://www.blogger.com/profile/09035300800137967478noreply@blogger.com0tag:blogger.com,1999:blog-8395477392559793606.post-19928157500191728422012-04-27T15:50:00.000+08:002013-11-29T15:16:08.576+08:00[Perl] 本地端使用 CPANPLUS 安裝 CPAN 模組(CPAN::Mini 應用)CPAN 是 Perl 吸引人的特點之一,裡面有成千上萬個模組,都是全世界程式設計師的智慧結晶,所以要寫一個功能前都會先上來看看是否有相似的模組就不用自己再發明輪子。但是通常在企業的 production 環境都是在內部網路,所以根本無法連到在 Internet 的 CPAN 網站。<br />
還好有一位大師 <a href="http://www.blogger.com/goog_755065269">Ricardo SIGNES</a><a href="http://search.cpan.org/%7Erjbs/" target="_blank"> </a>解決了這個問題,CPAN:Mini 模組把現在最新的 CPAN 模組蒐集起來 (2012/04 mirror 約 2G),我們可以利用可以連線至 Internet 的機器,把模組 mirror 下來,再傳到內部網路主機即可在裡面安裝 CPAN 模組。<br />
<br />
可先手動安裝 <a href="http://search.cpan.org/%7Erjbs/CPAN-Mini-1.111008/lib/CPAN/Mini.pm" target="_blank">CPAN::Mini</a> 之後你在命令列就有 minicpan 指令<br />
<br />
<b>再執行</b><br />
minicpan -l /minicpan -r http://ftp.funet.fi/pub/languages/perl/CPAN<br />
<br />
<b>就開始 mirror 了,至少需 2HR 以上時間,完成後進 CPANPLUS 開始初始設定</b><br />
<b>1. 輸入 cpanp</b><br />
<b>2. 輸入 s reconfigure</b><br />
<b>3. 選 7> Select mirrors</b><br />
<b>4. 看到 Would you like to keep your current hosts? [Y/n]: 選 n</b><br />
<b>5. 再選 2> Custom</b><br />
<b>6. 填上</b><b>剛剛 mirror 到 /minicpan 的路徑 </b><br />
<b>file:///minicpan (注意有三個 / )</b><br />
<b>7. 按 Enter 跳出</b><br />
<b>8. 選 4> Quit</b><br />
<b>9. 選 9> Save & exit</b><br />
<b>10. 輸入 q 離開</b><br />
<b>11. 再進入 cpanp</b><br />
<b>接下來就可以不用網路,在本地安裝 CPAN 模組囉,CPANPLUS 簡易用法請參考如下</b><br />
<br />
<b>CPANPLUS 簡易用法</b><br />
<b>安裝模組 (<a href="http://search.cpan.org/" target="_blank">模組名稱查詢</a>)</b><br />
i Date::Manip<br />
<br />
<b>移除模組</b><br />
u GD::Cairo<br />
<br />
<b>查詢模組</b><br />
m Chart::Clicker<br />
<br />
<b>查詢作者</b><br />
a 作者名<br />
<br />
<b>2013/11/29 補充</b><br />
假設 mini cpan 已經解開在 Linux 的 /cpan/mirror 目錄<br />
則使用 cpanm 進行安裝模組的話可以執行如下指令<br />
cpanm --mirror /cpan/mirror --mirror-only CPAN_MODULE_NAME<br />
<br />IT 台灣郎http://www.blogger.com/profile/09035300800137967478noreply@blogger.com3tag:blogger.com,1999:blog-8395477392559793606.post-31800165456395731322012-04-19T10:13:00.001+08:002012-04-28T16:31:52.115+08:00SQLite 簡易指令說明<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<b>SQLite 資料型態有</b></div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
NUMERIC, INTEGER, TEXT, REAL, NONE</div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
日期型別是用 TEXT 的 data type</div>
<b><br /></b>
<b>建立 DB 與 table 三步驟</b><br />
1. 執行指令 sqlite3 mydatabase.db<br />
2. 在 console 執行
<br />
<pre><code>
CREATE TABLE peoplestatus(id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, birthday TEXT, score1 REAL, score2 REAL, score3 REAL, height INTEGER, weight INTEGER);
</code></pre>
3. .exit or .q or .quit<br />
<br />
<b>Insert 語法 (id 是 AUTO INCREMENT, 所以我們不用自己 insert id 值)</b>
<br />
<pre><code>
sqlite3 mydatabase.db "insert into peoplestatus(name, birthday, score1, score2, score3, height, weight) values(1, '2012-04-18', 60.58, 77.23, 90.54, 172, 70);"
</code></pre>
<br />
<b>Select 語法</b>
<br />
<pre>
</pre>
<pre><code>sqlite3 mydatabase.db "select * from peoplestatus limit 2";
sqlite3 mydatabase.db "select * from peoplestatus order by id limit 1 offset 2";
</code></pre>
<b><br /></b>
<b>看 DB 裡面有什麼 table</b><br />
<pre><code>
sqlite3 mydatabase.db "select * from sqlite_master;"<br />
</code></pre>
<b><br /></b>
<b>看 peoplestatus 這個 table schema</b><br />
<pre><code>
sqlite3 mydatabase.db ".schema peoplestatus";<br />
</code></pre>
<br />
<b>Table 新增欄位</b>
<pre><code>
sqlite3 ip_pool.db "ALTER TABLE poolstatus ADD phoneno INTEGER"<br />
</code></pre>
<br />
<b>查詢身高 2012-04-10 生日的人</b><br />
<pre><code>
sqlite3 mydatabase.db "select * from peoplestatus where birthday like '2012-04-10%' order by id desc"
</code></pre>IT 台灣郎http://www.blogger.com/profile/09035300800137967478noreply@blogger.com0tag:blogger.com,1999:blog-8395477392559793606.post-91078364496145596412012-04-19T09:42:00.001+08:002012-05-04T17:10:48.938+08:00CentOS 載入 MIB file一般網路設備都有支援 SNMP 網管功能,但直接使用 snmpwalk 去看由於作業系統沒有載入設備的 MIB file 所以無法解析 OID 跟設備的對應關係,只看得到一堆 1.3.6.1.4.1.......<br />
<br />
所以我們必須載入廠商提供的 Mib file,讓我的 CentOS 知道對應關係,方法如下<br />
<br />
1. 複製廠商 Mib file 到 /usr/share/snmp/mibs/ 例如我們需要三個檔案<br />
<pre><code>
cp RBN-IPPOOL-MIB.my /usr/share/snmp/mibs/
cp RBN-SMI.my /usr/share/snmp/mibs/
cp RBN-TC.my /usr/share/snmp/mibs/
</code></pre>
<br />
2. 在要執行程式的使用者下面建立 .snmp 目錄,並將剛剛三個檔案的檔案寫入 snmp.conf 設定檔<br />
<pre><code>
mkdir $HOME/.snmp
echo "mibs +RBN-IPPOOL-MIB" >> $HOME/.snmp/snmp.conf
echo "mibs +RBN-SMI" >> $HOME/.snmp/snmp.conf
echo "mibs +RBN-TC" >> $HOME/.snmp/snmp.conf
</code></pre>
<br />
測試<br />
<pre><code>
snmptranslate -Td 1.3.6.1.4.1.2352.2.15 /usr/bin/snmpwalk -v 2c -c community 10.20.1.2 1.3.6.1.4.1.2352.2.15
</code></pre>
<br />
如果有把 OID 解析成名稱, 那就成功囉~IT 台灣郎http://www.blogger.com/profile/09035300800137967478noreply@blogger.com0tag:blogger.com,1999:blog-8395477392559793606.post-2617867932454357382012-04-13T10:41:00.004+08:002012-04-19T10:19:06.262+08:00[Perl] Check null value in Perl<pre><code>
if ( ! defined $var ) {
print "not defined\n";
}
else {
print "defined\n";
}
</code></pre>
<br />
來源 : <a href="http://www.unix.com/shell-programming-scripting/38416-not-null-cheking-argument-perl.html">http://www.unix.com/shell-programming-scripting/38416-not-null-cheking-argument-perl.html</a>IT 台灣郎http://www.blogger.com/profile/09035300800137967478noreply@blogger.com0tag:blogger.com,1999:blog-8395477392559793606.post-12890798209103915792012-04-09T22:10:00.002+08:002012-04-09T22:14:01.024+08:00CH57 健康同學會 - 五大防癌食物核桃熱量比較高, 應適量攝取, 其他的能吃多少就吃多少了 XD
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-m8vyQTgzlbQ/T4Ltq4M1UII/AAAAAAAAAbU/p_D8srtASTY/s1600/%253F%253F%2B1.JPG" imageanchor="1" style="clear:left; float:left;margin-right:1em; margin-bottom:1em"><img border="0" height="299" width="400" src="http://1.bp.blogspot.com/-m8vyQTgzlbQ/T4Ltq4M1UII/AAAAAAAAAbU/p_D8srtASTY/s400/%253F%253F%2B1.JPG" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-sRqOnpVczn0/T4LtvznWnbI/AAAAAAAAAbg/Djf8S6ipMCs/s1600/%253F%253F%2B2.JPG" imageanchor="1" style="clear:left; float:left;margin-right:1em; margin-bottom:1em"><img border="0" height="299" width="400" src="http://2.bp.blogspot.com/-sRqOnpVczn0/T4LtvznWnbI/AAAAAAAAAbg/Djf8S6ipMCs/s400/%253F%253F%2B2.JPG" /></a></div>IT 台灣郎http://www.blogger.com/profile/09035300800137967478noreply@blogger.com0tag:blogger.com,1999:blog-8395477392559793606.post-74041382553793600622012-04-09T21:42:00.002+08:002012-04-09T21:42:57.414+08:00Xcode v4.2 升級到 v4.3.2 問題前陣子因為 Apple 釋出 iOS 5.1, 所以開發工作也跟著出到 v4.3.2 版, 於是在閒暇的時候利用 Mac App store 把 Xcode v4.2 自動升級到 4.3.2. 升級完畢後點選 dock 上的 Xcode 圖示, 但是怎麼開起來還是 v4.2 版.... 後來利用 finder 搜尋 xcode 關鍵字, 發現在另一個地方也有一個 Xcode 執行檔, 原來 Mac App store 升級後不會自動替換掉 原本的 Xcode, 要自己拉出來才行阿!IT 台灣郎http://www.blogger.com/profile/09035300800137967478noreply@blogger.com0tag:blogger.com,1999:blog-8395477392559793606.post-2625995100130202772012-03-09T11:10:00.007+08:002012-03-09T13:42:32.130+08:00[iOS] 程式進入背景後之支援類型iOS 4.0 之後允許以下型態的用途進入背景執行<br /><br />1. audio<br />2. Voice over IP<br />3. Background location<br />4. Push notifications<br />5. Local notifications<br />6. Task finishing - If your app is in mid-task when your customer leaves it, the app can now keep running to finish the task.<br />7. Fast app switching - All developers should take advantage of fast app switching, which allows users to leave your app and come right back to where they were when they left - no more having to reload the app.<br /><br />一般都用 Task finishing, 系統會分配時間給你執行, 如果超過分配的時間 (預設是 600 秒 也就是10 分鐘), 系統會自動結束 process, 可利用下列語法查看, 系統分配備背景執行時間是多少<br />NSLog(@"Background remain time %f : ", [application backgroundTimeRemaining]);<br /><br />參考來源 : <a href="https://developer.apple.com/library/ios/#DOCUMENTATION/iPhone/Conceptual/iPhoneOSProgrammingGuide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html">iOS App Programming Guide: App States and Multitasking</a>IT 台灣郎http://www.blogger.com/profile/09035300800137967478noreply@blogger.com0tag:blogger.com,1999:blog-8395477392559793606.post-53897263903075267522012-03-03T09:46:00.003+08:002012-03-03T09:49:59.853+08:00[CentOS] date 顯示上個月, 兩個月前的月份做 log housekeeping 時可用<br /><br />這個月是 201203<br /><br />上個月份<br />date -d 'last-month' +%Y%m<br />顯示 201202<br /><br />前兩個月<br />date -d '2 months ago' +%Y%m<br />顯示 201201IT 台灣郎http://www.blogger.com/profile/09035300800137967478noreply@blogger.com0tag:blogger.com,1999:blog-8395477392559793606.post-50522119039601090382012-02-13T08:48:00.013+08:002012-09-12T18:15:36.245+08:00iOS 好用 framework 或模組分享 (2012/9/12 更新)開發 iOS app 時, 一些常用的功能都會有熱心的人已經開發好了, 如有找到適合的 framework 或 module 就不用重新自己造輪子囉~ <br />
<br />
<br />
搜集網站<br />
http://www.cocoacontrols.com<br />
<br />
<b>iBook like reader</b><br />
Leaves (https://github.com/brow/leaves)<br />
<br />
<b>書架</b><br />
AQGridView (https://github.com/AlanQuatermain/AQGridView)<br />
KKGridView (https://github.com/kolinkrewinkel/KKGridView)<br />
GMGridView (https://github.com/gmoledina/GMGridView)<br />
GSBookShelf (https://github.com/ultragtx/GSBookShelf)<br />
<br />
<b>PDF reader</b><br />
VFR reader (https://github.com/vfr/Reader)<br />
<br />
<b>EPUB reader</b><br />
AePubReader (https://github.com/fedefrappi/AePubReader)<br />
<br />
<b>eBook 製作工具 (HTML5 to iOS)</b><br />
Baker Ebook http://bakerframework.com/<br />
<br />
<b>XML 解析</b><br />
TBXML (http://www.tbxml.co.uk/TBXML/TBXML_Free.html)<br />
<br />
<b>JSON 解析 </b><br />
SBJson (http://stig.github.com/json-framework/)<br />
<br />
<b>Pull to reload</b><br />
https://github.com/enormego/EGOTableViewPullRefresh<br />
<br />
<b>Three20 (Facebook App 使用)</b><br />
http://three20.info/<br />
<br />
<b>CoverFlow 效果</b><br />
Tapku (http://tapku.com/)<br />
OpenFlow (http://apparentlogic.com/openflow/)<br />
<br />
<b>MGSplitViewController for iPad (比內建 UISplitViewController 更多功能)</b><br />
http://mattgemmell.com/2010/07/31/mgsplitviewcontroller-for-ipad/<br />
<br />
<b>ASIHTTPRequest (上下載檔案, 非同步處理等)</b><br />
http://allseeing-i.com/ASIHTTPRequest/<br />
<br />
<br />
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<b>AFNetworking (一樣是網路連線的 wrapper)</b></div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
https://github.com/AFNetworking/AFNetworking</div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<br /></div>
<br />
<b>ziparchive (壓縮/解壓縮 ZIP)</b><br />
http://code.google.com/p/ziparchive/<br />
<br />
<b>QR Code </b><br />
zxing (http://code.google.com/p/zxing/)<br />
<br />
<b>fmdb SQLite wrapper (簡化 SQLite 操作)</b><br />
https://github.com/ccgus/fmdb<br />
<br />
<b>展開效果的 UIView</b><br />
https://github.com/jwilling/JWFolders<br />
<br />
<b>ViewDeck (View 滑動效果)</b><br />
https://github.com/Inferis/ViewDeck<br />
<br />
<b>ShareKit (快速製作 Facebook, twitter 分享功能)</b><br />
http://getsharekit.com/<br />
<br />
<b>iCarousel (跑馬燈效果)</b><br />
https://github.com/nicklockwood/iCarousel<br />
<br />
<b>iNotify (簡化 UINotification 類別)</b><br />
https://github.com/nicklockwood/iNotify<br />
<br />
<b>TISwipeableTableView (滑動 tableview cell 產生新的 view)</b><br />
https://github.com/thermogl/TISwipeableTableView<br />
<br />
<b>DTGridView (橫向 tableview cell)</b><br />
https://github.com/danielctull/DTGridView<br />
<br />
<b>Kal - A calendar component for the iPhone (the UI is designed to match MobileCal) </b><br />
https://github.com/klazuka/Kal<br />
<br />
<b>JHNotificationManager (A queue-able notification manager for custom view notifications)</b><br />
https://github.com/jeffhodnett/JHNotificationManager<br />
<br />
<b>MBProgressHUD (客製化 alertview)</b><br />
https://github.com/jk/MBProgressHUD <br />
<br />
<b>DejalActivityView (客製化 alertview)</b><br />
http://www.dejal.com/developer/?q=developer/dsactivityview<br />
<br />
<b>YRDropdownView – A Polite UIAlertView Alternative for iOS</b> <b>(在上面會出現 UIAlertView)</b><br />
http://buildinternet.com/2012/02/yrdropdownview-a-polite-uialertview-alternative-for-ios/<br />
<br />
<b>LIExposeController (linkedin style 的 view)</b> <br />
https://github.com/linkedin/LIExposeController<br />
<br />
<b>Cocoa plotting framework for OS X and iOS (畫折線圖、長條圖等)</b><br />
http://code.google.com/p/core-plot/<br />
<br />
<b>MIMChart-Library (</b><b>畫折線圖、長條圖等)</b><br />
https://github.com/ReetuRaj/MIMChart-Library<br />
<br />
<b>翻頁效果1 (XBPageCurl)</b><br />
https://github.com/xissburg/XBPageCurl#readme<br />
<br />
<b>翻頁效果2 (PaperStack)</b><br />
http://api.mutado.com/mobile/paperstack/<br />
<br />
<b>iOS Boilerplate(A base template for iOS apps)</b><br />
http://iosboilerplate.com/<br />
<br />
<b>ToolDrawer (伸縮的 toolbar)</b><br />
https://github.com/aspitz/ToolDrawer<br />
<br />
<b>CMPopTipView (彈出 Tip 視窗功能)</b><br />
https://github.com/chrismiles/CMPopTipView<br />
<br />
<b>wunderradio (Internet Radio SDK)</b><br />
http://www.wunderradio.com/code.html<br />
<br />
<b>appirate (讓使用者增加評論</b> <b>- review)</b><br />
http://arashpayan.com/blog/2009/09/07/presenting-appirater/<br />
<br />
<br />IT 台灣郎http://www.blogger.com/profile/09035300800137967478noreply@blogger.com2tag:blogger.com,1999:blog-8395477392559793606.post-55854694166552694332012-01-31T10:19:00.005+08:002012-01-31T10:25:47.506+08:00[iOS] Flash (FLA, SWF) 轉換為 HTML5由於 iOS 不支援 Adobe Flash, 但是支援 HTML5 所以在既有很多 Flash 內容的 content (動畫, 遊戲...), 可以嘗試利用一些工具來把 fla, swf 轉換成 HTML5 格式以放到 iOS 上執行...<br /><br />FLA into HTML5 : <a href="http://labs.adobe.com/technologies/wallaby/">Adobe wallaby</a><br />SWF into HTML5 : <a href="http://www.google.com/doubleclick/studio/swiffy/">Google Swiffy</a> <br />HTML5 開發 iOS (Hybrid 開發方式) : <a href="http://www.appmobi.com/?q=node/27">appmobi 網站</a>IT 台灣郎http://www.blogger.com/profile/09035300800137967478noreply@blogger.com2tag:blogger.com,1999:blog-8395477392559793606.post-13281826221426169302012-01-16T09:43:00.002+08:002012-01-16T09:46:23.684+08:00光華商場 2012 年公休日期表大家去之前可以先留意一下, 不要撲空囉<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-O2TbDHNolck/TxOBOO1MtDI/AAAAAAAAAa0/efePnK9W32Q/s1600/%253F%253F.JPG"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 299px; height: 400px;" src="http://2.bp.blogspot.com/-O2TbDHNolck/TxOBOO1MtDI/AAAAAAAAAa0/efePnK9W32Q/s400/%253F%253F.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5698040035053188146" /></a>IT 台灣郎http://www.blogger.com/profile/09035300800137967478noreply@blogger.com0tag:blogger.com,1999:blog-8395477392559793606.post-48936406607999441922012-01-04T14:23:00.002+08:002012-01-04T14:30:22.811+08:00安裝 PHP 擴充函式 (PEAR)PEAR (PHP Extension and Application Repository)<br /><br />可上 <a href="http://pear.php.net/">http://pear.php.net/</a> 官網搜尋想要使用的套件, 例如想安裝 Package Information: HTML_QuickForm2 <br /><br />可連 Internet 的話, 可用簡易安裝法<br />pear install HTML_QuickForm2<br /><br />無法連外的話, 先手動下載該套件 (*.tgz or tar), 再執行<br />pear install HTML_QuickForm2-0.6.1.tar<br /><br />P.S 如有相依套件則須按照一樣的方法事先安裝~IT 台灣郎http://www.blogger.com/profile/09035300800137967478noreply@blogger.com0tag:blogger.com,1999:blog-8395477392559793606.post-47623353569896754872011-12-22T09:12:00.003+08:002011-12-22T09:16:30.270+08:00iPhone or iPad 2 升級 iOS 5 之後 Facetime 不能連線問題解法 : <br />1. 點選 "設定"<br />2. 選 "Facetime"<br />3. 關閉, 等個半分鐘<br />4. 開啟, 會要求重新輸入 Apple ID 密碼<br />5. 重新測試連線<br />6. doneIT 台灣郎http://www.blogger.com/profile/09035300800137967478noreply@blogger.com0