以前的方法
ps -ef | grep httpd
然後再去 kill pid
新發現的方法
pgrep httpd 可以直接取得 pid 不用再 grep
pkill 可以直接接 process name, 不用使用 pid
2012年6月1日
[MAC] iPhoto 照片檔案位置
之前備份了 iPhoto,記錄一下實際照片存放的路徑
iPhoto 圖庫 -> Masters -> 2011 -> 01
以上就代表 2011年1月的實際照片存放路徑囉
iPhoto 圖庫 -> Masters -> 2011 -> 01
以上就代表 2011年1月的實際照片存放路徑囉
2012年5月10日
[Perl] 陣列在副程式之間傳遞
通常傳遞陣列都是傳一個 reference 的記憶體位址過去,而不會真正把整個 Array 傳過去(雖然也是可以)
傳遞到副程式時:前面要加 \ ,讓 Perl 傳遞 reference 到 sub 內,副程式內用 scalar ($) 來接
副程式回傳後,要接收時:要解析 reference (通常稱作 dereference),在外面加上 @{ } 來 dereference
下面是一個簡單的範例
傳遞到副程式時:前面要加 \ ,讓 Perl 傳遞 reference 到 sub 內,副程式內用 scalar ($) 來接
副程式回傳後,要接收時:要解析 reference (通常稱作 dereference),在外面加上 @{ } 來 dereference
下面是一個簡單的範例
#!/usr/bin/perl
@mainAry = ("abc", "def");
#deference and expand the array
@returnAry = @{ &getInterface(\@mainAry) };
print "origin : @mainAry\n";
print "return : @returnAry\n";
sub getInterface() {
my ($rec_ref) = @_ ;
$a_ref = [];
foreach $values (@{ $rec_ref }) {
push(@$a_ref, $values);
print "push $values\n";
}
return $a_ref;
}
標籤:
Array,
dereference,
Perl,
reference,
subroutine
2012年5月4日
[Perl] cpanm 搭配 CPAN::Mini 的設定方式
之前的文章有介紹了 CPANPLUS 與 CPAN::Mini 但是現在更好用的模組管理程式是 cpanm (發音為 cpanminus)安裝方式為
curl -L http://cpanmin.us | perl - --sudo App::cpanminus
或直接下載 cpanm 檔案,本身是一隻 Perl 程式
curl -LO http://xrl.us/cpanm
chmod +x cpanm
使用方式跟 CPANPLUS 比起來真的是 minus 許多,摘錄 cpanm 使用方式 如下
cpanm Test::More # install Test::More
cpanm MIYAGAWA/Plack-0.99_05.tar.gz # full distribution path
cpanm http://example.org/LDS/CGI.pm-3.20.tar.gz # install from URL
cpanm ~/dists/MyCompany-Enterprise-1.00.tar.gz # install from a local file
cpanm --interactive Task::Kensho # Configure interactively
cpanm . # install from local directory
cpanm --installdeps . # install all the deps for the current directory
cpanm -L extlib Plack # install Plack and all non-core deps into extlib
cpanm --mirror http://cpan.cpantesters.org/ DBI # use the fast-syncing mirror
cpanm --scandeps Moose # See what modules will be installed for Moose
在這邊要介紹的是如果之前有用 CPAN::Mini 在本地 mirror 了 最新的 CPAN 模組庫,此時要配合 cpanm 使用的話
./cpanm --mirror /cpan/mirror --mirror-only 模組名稱
P.S. /cpan/mirror 是 cpan local repository 的路徑
2012年5月3日
[iOS] UITextview 拉到最下方文字無法完整顯示問題
最近開發一個新聞閱讀軟體,裡面有些內容使用 UITextview 來呈現,呈現當然是沒有問題但是奇怪的是將卷軸拉到最下面後大概有兩行的內容會看不到,需要用手往上拉(捲動 scrollbar)才能看得到,經過一番查詢看來是 iOS 預設的呈現方式,我們必須自己插入一些空間讓文字能夠往上提一點而不會被隱藏起來,方法如下
UITextview 名稱為 : newsTextView
原始出處 : http://stackoverflow.com/questions/1582554/iphone-uitextview-leaves-room-for-2-lines-at-the-bottom
UITextview 名稱為 : newsTextView
UIEdgeInsets contentInset = newsTextView.contentInset; //產生一個 UIEdgeInsets 物件
contentInset.bottom = 45.0; //下方空白空間,視需求增減
newsTextView.contentInset = contentInset; //設定 UITextview 的 contentInset 屬性
原始出處 : http://stackoverflow.com/questions/1582554/iphone-uitextview-leaves-room-for-2-lines-at-the-bottom
標籤:
iOS,
UITextview
2012年4月27日
[Perl] 本地端使用 CPANPLUS 安裝 CPAN 模組(CPAN::Mini 應用)
CPAN 是 Perl 吸引人的特點之一,裡面有成千上萬個模組,都是全世界程式設計師的智慧結晶,所以要寫一個功能前都會先上來看看是否有相似的模組就不用自己再發明輪子。但是通常在企業的 production 環境都是在內部網路,所以根本無法連到在 Internet 的 CPAN 網站。
還好有一位大師 Ricardo SIGNES 解決了這個問題,CPAN:Mini 模組把現在最新的 CPAN 模組蒐集起來 (2012/04 mirror 約 2G),我們可以利用可以連線至 Internet 的機器,把模組 mirror 下來,再傳到內部網路主機即可在裡面安裝 CPAN 模組。
可先手動安裝 CPAN::Mini 之後你在命令列就有 minicpan 指令
再執行
minicpan -l /minicpan -r http://ftp.funet.fi/pub/languages/perl/CPAN
就開始 mirror 了,至少需 2HR 以上時間,完成後進 CPANPLUS 開始初始設定
1. 輸入 cpanp
2. 輸入 s reconfigure
3. 選 7> Select mirrors
4. 看到 Would you like to keep your current hosts? [Y/n]: 選 n
5. 再選 2> Custom
6. 填上剛剛 mirror 到 /minicpan 的路徑
file:///minicpan (注意有三個 / )
7. 按 Enter 跳出
8. 選 4> Quit
9. 選 9> Save & exit
10. 輸入 q 離開
11. 再進入 cpanp
接下來就可以不用網路,在本地安裝 CPAN 模組囉,CPANPLUS 簡易用法請參考如下
CPANPLUS 簡易用法
安裝模組 (模組名稱查詢)
i Date::Manip
移除模組
u GD::Cairo
查詢模組
m Chart::Clicker
查詢作者
a 作者名
2013/11/29 補充
假設 mini cpan 已經解開在 Linux 的 /cpan/mirror 目錄
則使用 cpanm 進行安裝模組的話可以執行如下指令
cpanm --mirror /cpan/mirror --mirror-only CPAN_MODULE_NAME
還好有一位大師 Ricardo SIGNES 解決了這個問題,CPAN:Mini 模組把現在最新的 CPAN 模組蒐集起來 (2012/04 mirror 約 2G),我們可以利用可以連線至 Internet 的機器,把模組 mirror 下來,再傳到內部網路主機即可在裡面安裝 CPAN 模組。
可先手動安裝 CPAN::Mini 之後你在命令列就有 minicpan 指令
再執行
minicpan -l /minicpan -r http://ftp.funet.fi/pub/languages/perl/CPAN
就開始 mirror 了,至少需 2HR 以上時間,完成後進 CPANPLUS 開始初始設定
1. 輸入 cpanp
2. 輸入 s reconfigure
3. 選 7> Select mirrors
4. 看到 Would you like to keep your current hosts? [Y/n]: 選 n
5. 再選 2> Custom
6. 填上剛剛 mirror 到 /minicpan 的路徑
file:///minicpan (注意有三個 / )
7. 按 Enter 跳出
8. 選 4> Quit
9. 選 9> Save & exit
10. 輸入 q 離開
11. 再進入 cpanp
接下來就可以不用網路,在本地安裝 CPAN 模組囉,CPANPLUS 簡易用法請參考如下
CPANPLUS 簡易用法
安裝模組 (模組名稱查詢)
i Date::Manip
移除模組
u GD::Cairo
查詢模組
m Chart::Clicker
查詢作者
a 作者名
2013/11/29 補充
假設 mini cpan 已經解開在 Linux 的 /cpan/mirror 目錄
則使用 cpanm 進行安裝模組的話可以執行如下指令
cpanm --mirror /cpan/mirror --mirror-only CPAN_MODULE_NAME
2012年4月19日
SQLite 簡易指令說明
SQLite 資料型態有
NUMERIC, INTEGER, TEXT, REAL, NONE
日期型別是用 TEXT 的 data type
建立 DB 與 table 三步驟
1. 執行指令 sqlite3 mydatabase.db
2. 在 console 執行
CREATE TABLE peoplestatus(id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, birthday TEXT, score1 REAL, score2 REAL, score3 REAL, height INTEGER, weight INTEGER);
3. .exit or .q or .quitInsert 語法 (id 是 AUTO INCREMENT, 所以我們不用自己 insert id 值)
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);"
Select 語法
sqlite3 mydatabase.db "select * from peoplestatus limit 2";
sqlite3 mydatabase.db "select * from peoplestatus order by id limit 1 offset 2";
看 DB 裡面有什麼 table
sqlite3 mydatabase.db "select * from sqlite_master;"
看 peoplestatus 這個 table schema
sqlite3 mydatabase.db ".schema peoplestatus";
Table 新增欄位
sqlite3 ip_pool.db "ALTER TABLE poolstatus ADD phoneno INTEGER"
查詢身高 2012-04-10 生日的人
sqlite3 mydatabase.db "select * from peoplestatus where birthday like '2012-04-10%' order by id desc"
CentOS 載入 MIB file
一般網路設備都有支援 SNMP 網管功能,但直接使用 snmpwalk 去看由於作業系統沒有載入設備的 MIB file 所以無法解析 OID 跟設備的對應關係,只看得到一堆 1.3.6.1.4.1.......
所以我們必須載入廠商提供的 Mib file,讓我的 CentOS 知道對應關係,方法如下
1. 複製廠商 Mib file 到 /usr/share/snmp/mibs/ 例如我們需要三個檔案
2. 在要執行程式的使用者下面建立 .snmp 目錄,並將剛剛三個檔案的檔案寫入 snmp.conf 設定檔
測試
如果有把 OID 解析成名稱, 那就成功囉~
所以我們必須載入廠商提供的 Mib file,讓我的 CentOS 知道對應關係,方法如下
1. 複製廠商 Mib file 到 /usr/share/snmp/mibs/ 例如我們需要三個檔案
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/
2. 在要執行程式的使用者下面建立 .snmp 目錄,並將剛剛三個檔案的檔案寫入 snmp.conf 設定檔
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
測試
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
如果有把 OID 解析成名稱, 那就成功囉~
2012年4月13日
[Perl] Check null value in Perl
if ( ! defined $var ) {
print "not defined\n";
}
else {
print "defined\n";
}
來源 : http://www.unix.com/shell-programming-scripting/38416-not-null-cheking-argument-perl.html
2012年4月9日
Xcode 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, 要自己拉出來才行阿!
2012年3月9日
[iOS] 程式進入背景後之支援類型
iOS 4.0 之後允許以下型態的用途進入背景執行
1. audio
2. Voice over IP
3. Background location
4. Push notifications
5. Local notifications
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.
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.
一般都用 Task finishing, 系統會分配時間給你執行, 如果超過分配的時間 (預設是 600 秒 也就是10 分鐘), 系統會自動結束 process, 可利用下列語法查看, 系統分配備背景執行時間是多少
NSLog(@"Background remain time %f : ", [application backgroundTimeRemaining]);
參考來源 : iOS App Programming Guide: App States and Multitasking
1. audio
2. Voice over IP
3. Background location
4. Push notifications
5. Local notifications
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.
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.
一般都用 Task finishing, 系統會分配時間給你執行, 如果超過分配的時間 (預設是 600 秒 也就是10 分鐘), 系統會自動結束 process, 可利用下列語法查看, 系統分配備背景執行時間是多少
NSLog(@"Background remain time %f : ", [application backgroundTimeRemaining]);
參考來源 : iOS App Programming Guide: App States and Multitasking
標籤:
background,
iOS,
programming
2012年3月3日
[CentOS] date 顯示上個月, 兩個月前的月份
做 log housekeeping 時可用
這個月是 201203
上個月份
date -d 'last-month' +%Y%m
顯示 201202
前兩個月
date -d '2 months ago' +%Y%m
顯示 201201
這個月是 201203
上個月份
date -d 'last-month' +%Y%m
顯示 201202
前兩個月
date -d '2 months ago' +%Y%m
顯示 201201
標籤:
centos,
Linux date
2012年2月13日
iOS 好用 framework 或模組分享 (2012/9/12 更新)
開發 iOS app 時, 一些常用的功能都會有熱心的人已經開發好了, 如有找到適合的 framework 或 module 就不用重新自己造輪子囉~
搜集網站
http://www.cocoacontrols.com
iBook like reader
Leaves (https://github.com/brow/leaves)
書架
AQGridView (https://github.com/AlanQuatermain/AQGridView)
KKGridView (https://github.com/kolinkrewinkel/KKGridView)
GMGridView (https://github.com/gmoledina/GMGridView)
GSBookShelf (https://github.com/ultragtx/GSBookShelf)
PDF reader
VFR reader (https://github.com/vfr/Reader)
EPUB reader
AePubReader (https://github.com/fedefrappi/AePubReader)
eBook 製作工具 (HTML5 to iOS)
Baker Ebook http://bakerframework.com/
XML 解析
TBXML (http://www.tbxml.co.uk/TBXML/TBXML_Free.html)
JSON 解析
SBJson (http://stig.github.com/json-framework/)
Pull to reload
https://github.com/enormego/EGOTableViewPullRefresh
Three20 (Facebook App 使用)
http://three20.info/
CoverFlow 效果
Tapku (http://tapku.com/)
OpenFlow (http://apparentlogic.com/openflow/)
MGSplitViewController for iPad (比內建 UISplitViewController 更多功能)
http://mattgemmell.com/2010/07/31/mgsplitviewcontroller-for-ipad/
ASIHTTPRequest (上下載檔案, 非同步處理等)
http://allseeing-i.com/ASIHTTPRequest/
ziparchive (壓縮/解壓縮 ZIP)
http://code.google.com/p/ziparchive/
QR Code
zxing (http://code.google.com/p/zxing/)
fmdb SQLite wrapper (簡化 SQLite 操作)
https://github.com/ccgus/fmdb
展開效果的 UIView
https://github.com/jwilling/JWFolders
ViewDeck (View 滑動效果)
https://github.com/Inferis/ViewDeck
ShareKit (快速製作 Facebook, twitter 分享功能)
http://getsharekit.com/
iCarousel (跑馬燈效果)
https://github.com/nicklockwood/iCarousel
iNotify (簡化 UINotification 類別)
https://github.com/nicklockwood/iNotify
TISwipeableTableView (滑動 tableview cell 產生新的 view)
https://github.com/thermogl/TISwipeableTableView
DTGridView (橫向 tableview cell)
https://github.com/danielctull/DTGridView
Kal - A calendar component for the iPhone (the UI is designed to match MobileCal)
https://github.com/klazuka/Kal
JHNotificationManager (A queue-able notification manager for custom view notifications)
https://github.com/jeffhodnett/JHNotificationManager
MBProgressHUD (客製化 alertview)
https://github.com/jk/MBProgressHUD
DejalActivityView (客製化 alertview)
http://www.dejal.com/developer/?q=developer/dsactivityview
YRDropdownView – A Polite UIAlertView Alternative for iOS (在上面會出現 UIAlertView)
http://buildinternet.com/2012/02/yrdropdownview-a-polite-uialertview-alternative-for-ios/
LIExposeController (linkedin style 的 view)
https://github.com/linkedin/LIExposeController
Cocoa plotting framework for OS X and iOS (畫折線圖、長條圖等)
http://code.google.com/p/core-plot/
MIMChart-Library (畫折線圖、長條圖等)
https://github.com/ReetuRaj/MIMChart-Library
翻頁效果1 (XBPageCurl)
https://github.com/xissburg/XBPageCurl#readme
翻頁效果2 (PaperStack)
http://api.mutado.com/mobile/paperstack/
iOS Boilerplate(A base template for iOS apps)
http://iosboilerplate.com/
ToolDrawer (伸縮的 toolbar)
https://github.com/aspitz/ToolDrawer
CMPopTipView (彈出 Tip 視窗功能)
https://github.com/chrismiles/CMPopTipView
wunderradio (Internet Radio SDK)
http://www.wunderradio.com/code.html
appirate (讓使用者增加評論 - review)
http://arashpayan.com/blog/2009/09/07/presenting-appirater/
搜集網站
http://www.cocoacontrols.com
iBook like reader
Leaves (https://github.com/brow/leaves)
書架
AQGridView (https://github.com/AlanQuatermain/AQGridView)
KKGridView (https://github.com/kolinkrewinkel/KKGridView)
GMGridView (https://github.com/gmoledina/GMGridView)
GSBookShelf (https://github.com/ultragtx/GSBookShelf)
PDF reader
VFR reader (https://github.com/vfr/Reader)
EPUB reader
AePubReader (https://github.com/fedefrappi/AePubReader)
eBook 製作工具 (HTML5 to iOS)
Baker Ebook http://bakerframework.com/
XML 解析
TBXML (http://www.tbxml.co.uk/TBXML/TBXML_Free.html)
JSON 解析
SBJson (http://stig.github.com/json-framework/)
Pull to reload
https://github.com/enormego/EGOTableViewPullRefresh
Three20 (Facebook App 使用)
http://three20.info/
CoverFlow 效果
Tapku (http://tapku.com/)
OpenFlow (http://apparentlogic.com/openflow/)
MGSplitViewController for iPad (比內建 UISplitViewController 更多功能)
http://mattgemmell.com/2010/07/31/mgsplitviewcontroller-for-ipad/
ASIHTTPRequest (上下載檔案, 非同步處理等)
http://allseeing-i.com/ASIHTTPRequest/
AFNetworking (一樣是網路連線的 wrapper)
https://github.com/AFNetworking/AFNetworking
ziparchive (壓縮/解壓縮 ZIP)
http://code.google.com/p/ziparchive/
QR Code
zxing (http://code.google.com/p/zxing/)
fmdb SQLite wrapper (簡化 SQLite 操作)
https://github.com/ccgus/fmdb
展開效果的 UIView
https://github.com/jwilling/JWFolders
ViewDeck (View 滑動效果)
https://github.com/Inferis/ViewDeck
ShareKit (快速製作 Facebook, twitter 分享功能)
http://getsharekit.com/
iCarousel (跑馬燈效果)
https://github.com/nicklockwood/iCarousel
iNotify (簡化 UINotification 類別)
https://github.com/nicklockwood/iNotify
TISwipeableTableView (滑動 tableview cell 產生新的 view)
https://github.com/thermogl/TISwipeableTableView
DTGridView (橫向 tableview cell)
https://github.com/danielctull/DTGridView
Kal - A calendar component for the iPhone (the UI is designed to match MobileCal)
https://github.com/klazuka/Kal
JHNotificationManager (A queue-able notification manager for custom view notifications)
https://github.com/jeffhodnett/JHNotificationManager
MBProgressHUD (客製化 alertview)
https://github.com/jk/MBProgressHUD
DejalActivityView (客製化 alertview)
http://www.dejal.com/developer/?q=developer/dsactivityview
YRDropdownView – A Polite UIAlertView Alternative for iOS (在上面會出現 UIAlertView)
http://buildinternet.com/2012/02/yrdropdownview-a-polite-uialertview-alternative-for-ios/
LIExposeController (linkedin style 的 view)
https://github.com/linkedin/LIExposeController
Cocoa plotting framework for OS X and iOS (畫折線圖、長條圖等)
http://code.google.com/p/core-plot/
MIMChart-Library (畫折線圖、長條圖等)
https://github.com/ReetuRaj/MIMChart-Library
翻頁效果1 (XBPageCurl)
https://github.com/xissburg/XBPageCurl#readme
翻頁效果2 (PaperStack)
http://api.mutado.com/mobile/paperstack/
iOS Boilerplate(A base template for iOS apps)
http://iosboilerplate.com/
ToolDrawer (伸縮的 toolbar)
https://github.com/aspitz/ToolDrawer
CMPopTipView (彈出 Tip 視窗功能)
https://github.com/chrismiles/CMPopTipView
wunderradio (Internet Radio SDK)
http://www.wunderradio.com/code.html
appirate (讓使用者增加評論 - review)
http://arashpayan.com/blog/2009/09/07/presenting-appirater/
2012年1月31日
[iOS] Flash (FLA, SWF) 轉換為 HTML5
由於 iOS 不支援 Adobe Flash, 但是支援 HTML5 所以在既有很多 Flash 內容的 content (動畫, 遊戲...), 可以嘗試利用一些工具來把 fla, swf 轉換成 HTML5 格式以放到 iOS 上執行...
FLA into HTML5 : Adobe wallaby
SWF into HTML5 : Google Swiffy
HTML5 開發 iOS (Hybrid 開發方式) : appmobi 網站
FLA into HTML5 : Adobe wallaby
SWF into HTML5 : Google Swiffy
HTML5 開發 iOS (Hybrid 開發方式) : appmobi 網站
2012年1月4日
安裝 PHP 擴充函式 (PEAR)
PEAR (PHP Extension and Application Repository)
可上 http://pear.php.net/ 官網搜尋想要使用的套件, 例如想安裝 Package Information: HTML_QuickForm2
可連 Internet 的話, 可用簡易安裝法
pear install HTML_QuickForm2
無法連外的話, 先手動下載該套件 (*.tgz or tar), 再執行
pear install HTML_QuickForm2-0.6.1.tar
P.S 如有相依套件則須按照一樣的方法事先安裝~
可上 http://pear.php.net/ 官網搜尋想要使用的套件, 例如想安裝 Package Information: HTML_QuickForm2
可連 Internet 的話, 可用簡易安裝法
pear install HTML_QuickForm2
無法連外的話, 先手動下載該套件 (*.tgz or tar), 再執行
pear install HTML_QuickForm2-0.6.1.tar
P.S 如有相依套件則須按照一樣的方法事先安裝~
訂閱:
文章 (Atom)