網頁

2011年4月25日 星期一

囧 我一直以為中華電信的市內電話是以秒計費

well well well 我一直以為中華電信的市內電話是以秒計費,原來不是這樣啊
因為看到中華電信又降價啦,所以認真的去查了一下中華電信網站上的資料
原來一般住家用的市內電話,中華電信提供了基本型A、基本型B、基本型C,三種收費方式,包含基本的月租費和通話費的收取。

* 基本型A:申請電話時,如果沒有指定,就預設為基本型A,月租費為50元,通信費為3分鐘1.6元,但每月可選擇扣抵市內通信費25元 ,或贈送話中插接及勿干擾其中一項。
* 基本型B:與基本型A一樣,月租費為50元,通信費為5分鐘1.6元
* 基本型C:月租費75元,通信費為5分鐘1.5元,但不能扣抵通信費
以上所有計費都是以次計算,就算你每次只講30秒,基本A型一樣收1.6元,基本B型收1.6元,基本C型收1.5元,所以哪個划算,要看你平時通話時間去算一下,不一定是C型就是最便宜。



修改計費方式步驟如下:(修改後,下個月1號生效)
1. 拿起家裡的室內電話撥打1200,進入語音系統。
2. 然後按1,選擇"市內電話費率選擇"。
3. 再按 1,選擇"設定市內電話選擇"。
4. 接下來輸入家裡的電話號碼,正確按1。
5. 接下來按 2,來選擇"基本型"。(就上面那三種)
6. 再來按 3,系統會提示:選擇 C方案,每 5分鐘 1.5元,再按1後就完成。

閱讀全文...

2011年4月15日 星期五

ObjC interface的Hello World

物件導向語言最重要的就是class,ObjC叫interface,Hello World進階版,一樣還是Hello World!
一切就看圖說故事...






閱讀全文...

2011年4月13日 星期三

使用GNUmakefile


好的工具讓你上天堂,爛的工具讓你下地獄,講都沒在聽…(爛梗)

Makefile其實在unix like的環境中,一直扮演很重要的角色,熟悉makefile可以讓你在編譯時達到事半功倍的效益。



一樣以之前的hello.m為例,在相同的目錄下,加入一個名為GNUmakefile的檔案,檔案內容如下:

include $(GNUSTEP_MAKEFILES)/common.make

TOOL_NAME = hello
hello_OBJC_FILES = hello.m

include $(GNUSTEP_MAKEFILES)/tool.make

檔案存檔後,在命令列輸入make執行編譯動作,會在同一目錄下產生一子目錄(./obj)及產生執行檔。

在命令列輸入 ./obj/hello,會得到相同的Hello World!結果。

有關GNUmakefile詳細使用方式,可以參考 Writing GNUstep MakefilesGNUstep Makefile Package

閱讀全文...

ObjC的特色


ObjC就是C加上物件導向的特性,很接近Java,比C++精簡,許多概念都是從SmallTalk而來的。

  • 單一繼承,只可以有一個superclass 
  • C++JAVA使用 funcation call[Object.funcation(args)]ObjC也是,只是改稱為message,格式改為[Object method:args],使用dynamic binding,並不是在編譯的時候處理。 
  • Category類似JavaC++中的Subclass用來增加原有的Class短缺的method,差別在於Category只能新增method,不能新增變數,而C++javasubclass可以。 
  • Protocol類似JavaInterface,用來解決沒有多重繼承的問題。

閱讀全文...

GNUstep初探


GNUstep主要提供兩個函示庫,FoundationAppKitFoundation用來處理非圖形介面,又稱為GNUstep BaseAppKit用來處理圖形介面,又稱為GNUstep GUI。最後衍生出OpenStep介面,可用在MachWindowsSolarisHP/UX,更進一步成為MacOSXCocoa環境。


GNUstep 包含四個主要部份:
1. GNUstep Make:提供類似 Makefile 的功能。
2. GNUstep Base:提供 OpenStep Foundation 程式庫,用於處理非圖形介面的功能。
3. GNUstep GUI:提供 OpenStep AppKit 程式庫,用於處理圖形介面的功能。
4. GNUstep Back:提供與作業系統相關的後端處理,提供 GNUstep GUI 有關繪圖及字型的功能。讓使用者不用考慮作業系統問題。

閱讀全文...

2011年4月12日 星期二

在Windows環境下編譯ObjC


雖然安裝完環境後,也嘗試編譯OK,但想到每次都要打那落落長的一串,心裡就

懶是進步的原動力,翻完了GCC Online Documents(http://gcc.gnu.org/onlinedocs/)發現,GCC預設的環境變數有OBJC_INCLUDE_PATH,有這個真的方便多了,在unix like環境有.profile可以發揮其妙用了。


1.        UNIX like環境(這邊是Windows底下採用MSYS環境)
1.1.       開始/所有程式/GNUstep/shell” 開啟 MSYS
1.2.       home 目錄下,打開 .profile 檔案,此檔案的內容會在每次新進入的shell時執行一次,在檔案裡面鍵入下列兩行:
export OBJC_INCLUDE_PATH=/c/GNUstep/GNUstep/System/Library/Headers/
export LIBRARY_PATH=/c/GNUstep/GNUstep/Library/Libraries/


說明:兩行用來設定ObjC header filelibrary 路徑,GCC會造此設定去尋找所需的檔案。
1.3.       重新開啟MSYS或在原MSYS的命令列鍵入執行
. ~/.profile
編譯看看
$ gcc `gnustep-config –objc-flags` hello.m -o hello -lgnustep-base –lobjc


閱讀全文...

2011年4月11日 星期一

Objective-C環境(使用GNUStep)安裝於Windows


為了建置一個練習Objective-C語言的環境,GNUstep是一個不錯的選擇,一個實作出Cocoa APIs的跨平台開發環境,可以在LinuxWindows平台下使用。底下以Windows(我的電腦為Windows 7)為例。


1.        先至GNUstep的下載頁面(http://www.gnustep.org/experience/Windows.html)下載GNUstep MSYS SystemGNUstep CoreGNUstep Devel(不裝這個就無法編譯程式),這邊下載的是0.25.x版本,安裝到Windows上,這樣就會有MinGW這個開發環境和相關程式。
2.        安裝GNUstep MSYS System,標準的windows安裝步驟,同意license,採用預設值,一直按Next就可以安裝完成。








3.        安裝GNUstep Core,標準的windows安裝步驟,同意license,採用預設值,一直按Next就可以安裝完成。







4.        安裝GNUstep Devel,標準的windows安裝步驟,同意license,採用預設值,一直按Next就可以安裝完成。








5.        執行GNUstepshell視窗
執行 開始/所有程式/GNUstep/shell” 會出現下面畫面,安裝時都採預設值時,起始目錄對應的實體硬碟目錄為C:\GNUstep\home\<使用者名稱>

6.        又見Hello World
預設環境中會有Vim,打開產生hello.m,鍵入下列程式碼。
#import

int main(int argc, char *argv[]){
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

    NSLog(@"Hello World!");

    [pool drain];
    return 0;
}

7.        編譯及執行
shell視窗鍵入:
gcc `gnustep-config --objc-flags` -L /GNUstep/System/Library/Libraries hello.m -o hello -lgnustep-base –lobjc

./hello 執行



閱讀全文...