2010年12月23日 星期四

自製iPhone 單鍵撥號程式

iPhone用了這麼久,其實常撥出去的號碼也只有一兩隻,
但是每次要撥號總是要找一陣子,相當地不直覺,
有時候還真希望有這樣的軟體,可以讓iPhone上的icon變成直撥號碼的按鍵。

其實在iPhone上還真的有這樣的軟體,而且還要2.99美元:
http://itunes.apple.com/us/app/facecall/id290447776?mt=8

如果你不想花這2.99美元,其實還是有其他的替代方案,如下

http://iphone4.tw/forums/showthread.php?t=103679

其實iPhone4.tw推薦的方法,原理還滿簡單的,
就是在iPhone的桌面上新增一個網頁書籤,而這個書籤會連到tel.qlnk.net的網頁,網頁的內容會自動讀取設定好的手機號碼,然後撥出電話。

但是,個人是比較不相信不知名的網站,畢竟不知道他會不會將個人的手機號碼洩露出去。

所以,我決定自己寫一個簡易的網頁,放在自己的機器上,這樣就不用擔心資料被人截取。

我按照tel.qlnk.net網頁的內容,自行寫了一個php,內容如下:


<?php
$phone = $_GET["p"];
?>
<html>
<head>
<title>
</title>
<meta name="viewport" content="width=device-width"/>
<meta http-equiv='refresh' content='0;url=tel://<?php echo $phone;?>'/>
<link rel="apple-touch-icon" href="images/dial.jpg"/>
</head>
<body>
<?php echo "The number you want to dial is " . $phone;?>
</body>
</html>


程式很簡單,主要是在第二行中取得網址上的電話號碼,並且指定給變數$phone,
接著是第九行,這裡是讓safari讀取電話號碼的地方,我將$phone輸出在這欄位,這樣使用者可以任意輸入電話號碼。
第十行可以自行設定iPhone上的icon圖示,可以填入自己喜愛的圖示,
其他的就不是很重要,只是一些html,照貼就可以了。

假設我們要撥的電話是123456789,這個檔案為dail.php,
那我只要在iphone的桌面上新增一個連結如下:

http://my.server.ip/dail.php?p=123456789

如下圖,我新增了一個John,以後只要點這個icon,就可以直接撥給John啦

Photo 12月 24, 11 30 43 上午.jpg

2010年12月21日 星期二

使用預覽程式將PDF轉成灰階文件

有時候PDF上的圖表是彩色的,很容易辨識,
但是,黑白列印出來之後,就完全無法分清圖表上線條,
最好的方法當然就是自己印出來確認。

如果你跟我一樣不想浪費紙張的話,第一念頭一定是想要將這份pdf轉存成灰階的文件,
直接在電腦上確認變成灰階的圖表是否可以輕易的辨識。
還好在Mac上的預覽程式本身就內建了轉檔的功能,可以不用浪費紙張,好好愛護我們的地球。

大家可以參考apple官網的討論串:

http://discussions.apple.com/thread.jspa?threadID=2679199&tstart=120


其實轉檔的過程很簡單,
先將原本的pdf文件用"預覽程式"打開,
接著點選"檔案" -> "儲存為..."
如下圖:

save_as.jpg


然後,在"Quartz濾鏡"的地方,選擇"Gray Tone",如下圖

gray_tone.jpg


確認無誤之後,按下"儲存",灰階文件就完成了。

confirm_gray-1.jpg


預覽程式真的很強大,輕輕鬆鬆就完成了我想要的功能,越來越愛用Mac了。

2010年12月16日 星期四

Cocoa Application Tutorial 疑難雜症

想要學Cocoa,我想第一個會練習的程式應該是官方提供的教學 "Cocoa Application Tutorial"
因為,這份文件寫的淺顯易懂,可以拿來練英文,也可以初探Cocoa神奇奧妙之處。
當然,我個人也是有仔細看過一遍,而且照著它的步驟寫過一次。
照著文件會寫出了一個簡易的匯率換算程式,就完全不懂Objective C的語法,
也可以複製貼上,貼出一個簡單的視窗程式,
寫完之後,你將會發現,用Cocoa開發程式,真的是一件很愉快的事情,
清楚的MVC架構,搭配容易上手的Interface Builder,加上炫麗的Xcoder,
就算遇到Bug也不會有灰心的感覺。
雖然我個人是VIM的愛用者,但是Xcoder使用起來,真的讓人愛不擇手丫。

建議有興趣的朋友將這份教學看一遍,
如果真的有看沒有懂,也沒有關係,
已經有朋友將自己的筆記分享出來了,
請參考以下連結:

http://blog.roodo.com/flowyu/archives/1511153.html

當然,本篇之所以命名為疑雜症,一定是在寫這份Tutorial時,可能會遇到的問題。
其中,最讓我困擾的是在 "Bridging the Model and View: The Controller"這節之中,
官方文件提到,要將ConverterController加入Nib檔案之中,但是我每次將ConverterController.h拖到Nib檔案都會出現 "1 source file parsed, no classes found or changed",下圖中的紅色圈圈內的物件,就是不會出現,害我無法繼續下一個步驟,卡關卡了一陣子。

Converter-1.jpg


好在也有人遇到這樣的問題,並且提出解法:

http://const-cast.blogspot.com/2010/03/xcode-1-source-file-parsed-no-classes.html

解法是在Interface Builder中,點選"Tools->Library",接著選擇Library視窗中的"Classes"。
然後會看到剛剛找不到的ConverterController class。
點二下這個ConverterController,它就會出現在Nib檔案中啦。
如下圖:

Library.jpg


以上,就是這份Tutorial最關鍵的地方,其他的部份都很簡單,
寫不到10行的程式就完成了一個簡易的匯率換算機,
晚一點有空,再分享code出來好了。

先貼一張程式正在執行中的圖片:

螢幕快照 2010-12-15 下午9.06.09.png

Objective C 相關教學網站

最近有朋友來問我學Objective C該如何下手,
剛好手邊有搜集一些相關的網站,
分享給大家參考一下,
當然,照慣例,我會不定期會更新相關的網站連結。

基本教學



底下是一些Objective C的基本教學,建議可以偶而逛逛熟悉一下Objective C

http://www.informit.com/articles/article.aspx?p=1315356

http://www.techotopia.com/index.php/Installing_Xcode_and_Compiling_Objective-C_on_Mac_OS_X#Compiling_Objective-C_from_the_Command_Line

http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/ObjectiveC/Introduction/introObjectiveC.html

http://www.foldr.org/~michaelw/objective-c/


Objective-C Beginner's Guide 中譯版



整理相當完善的初心手冊:

http://otierney.net/objective-c.html.zh-tw.big5


Mac 官方develop網站



想成為Mac開發者一定要去看的官方開發網站:

http://developer.apple.com

2010年12月7日 星期二

統計圖上的省略符號

為了突顯特別的重要資料,統計圖上常常會看到省略的符號,
用以截斷中間沒有意義的部分。

這樣的觀念,相信大家早就知道了,
但是,要怎麼透過軟體畫這樣的圖表,這就不容易了。

這種圖,目前我還沒有特別聽說別人怎麼稱呼它,所以,連要下什麼keyword去找,都不知道,
後來用"break y axis"這個keyword才找到一些相關的討論。

根據我個人查詢和詢問友人的結果,
目前要實作出這樣的圖,excel是無法直接作到,必須透過一些外掛,並且需要修改原來的資料才能達到這樣的目的。
如:

http://peltiertech.com/Excel/Charts/BrokenYAxis.html

看起來也是挺麻煩的,
反正都已經這麼麻煩了,不然就用matlab去寫吧,
matlab上已經有人寫好不錯用的函式了,
如:

http://www.mathworks.com/matlabcentral/fileexchange/3668-breakaxis

經過我個人測試,還滿好用的,有需要的朋友,可以試試看。
官網提供的範例原圖:

偶然逛到的blog- Gasolin

有在開發android手機程式的朋友一定對Gasolin不陌生,
因為他是"Google!Android 2手機應用程式設計入門"的作者,
還記得一年前左右,我曾經在偶然的機會下看過這位作者,
那一次是去聽一門Android的課程,剛好Gasolin的新書剛出版,
所以他來為自己的新書打廣告,
人還滿不錯,很年輕,
很有工程師的fu。

雖然我已經很久沒有寫android了,不過,他的書還不錯,可以當入門書來看看。

Gasolin的部落格:
http://inet6.blogspot.com/

2010年12月4日 星期六

OSX Server 啟用PHP5模組

在知道Web的檔案絕對位置之後,
有在寫PHP的朋友一定會發現,OSX server 預設是沒有將php5_module啟用,
所以寫好的PHP會變成一般檔案下載回來。
怎麼辦呢?

不用擔心,一樣是打開萬能的"Server admin",
然後照下圖順序將php5_moudle勾選起來:

php5_module.jpg

設定完之後,記得存檔並且重啟apache。

如何確定php有正常啟用呢?
請打開/Library/WebServer/Documents/info.php

<?php
// You can use Server Admin to enable the Apache PHP module; it's disabled by default.
// You can uncomment the phpinfo() directive below to provide a default PHP info page
// but note that this displays information about your host's configuration.
//phpinfo();
?>


將phpinfo();前面的註解//砍掉並存檔
然後連結到你的網頁http://yoursite/info.php
看看是否能正常看到php的基本資訊,
如果可以的話,你的php就正常運作了。

OSX Server Web 檔案存放位置

OSX server 用這麼久了,
我都還沒有開始使用他的Web功能,
想說他本身就有內建apache,應該和我平時在Linux上的配置一樣吧。
其實不然,如果你真的下去找到的話,你會發現OSX server跟本沒有/var/www這個資料夾。
什麼!!那我的網頁都放在那裡?

我找了半天也沒找到,根本不知道網頁的實際位置。
好在我想起了"Server admin",這個工具,
沒錯,幾乎所有內建的基本設定都可以在"Server admin"找到,
所以點開你的"Server admin",按照下圖的順序就可以找到網頁的絕對位置了
Web Folder-1.jpg

所以,預設的檔案位置是存放在 /Library/WebServer/Documents 這個資料夾底下。
當然,請確認你的Web功能是打開的,不然會找不到Web這個選項。

好啦,知道檔案的位置,就可以開始寫網頁啦,
不知道有沒有人因為找不到檔案路徑而放棄使用OSX server的呢?
我承認我差一點點就放棄了。
Related Posts Plugin for WordPress, Blogger...