iOS HTTP Request - POST

這東西不管是作網站或者網路服務都超給他重要的

/****************************************************************************************/
//會員與新會員統計
//宣告一個 NSMutableURLRequest 並給予一個記憶體空間
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
//宣告一個 NSURL 並給予記憶體空間、連線位置
NSURL *connection = [[NSURL alloc] initWithString:@"http://XXX.XXX.XXX.XX/XXXXXXX.php"];
//宣告要post的值
NSString *httpBodyString=[NSString stringWithFormat:@"XXX=%@&XXX=%@&XXX=%@", YYY, YYY, YYY];
//NSLog(@"httpBodyString = %@",httpBodyString);
//設定連線位置
[request setURL:connection];
//設定連線方式
[request setHTTPMethod:@"POST"];
//將編碼改為UTF8
[request setHTTPBody:[httpBodyString dataUsingEncoding:NSUTF8StringEncoding]];

//轉換為NSData傳送
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
//看request出來的值
NSLog(@"%@",[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
/****************************************************************************************/


NSURL *connection = [[NSURL alloc] initWithString:@"http://XXX.XXX.XXX.XX/XXXXXXX.php"];
再這裡用php作代表
但會因為使用的server語言而變 ex.asp、aspx、php、jsp.......等
XXXXX的部份就是你的url

NSString *httpBodyString=[NSString stringWithFormat:@"XXX=%@&XXX=%@&XXX=%@", YYY, YYY, YYY];
XXX所代表就是在server端要接收的變數名稱
YYY就是要丟進去的值
記得每一筆都要給他用&分開

相關連結
iOS Library
iOS Library - NSMutableURLRequest Class Reference
iOS Library - NSURL Class Reference
iOS Library - NSData Class Reference
iOS Library - NSString Class Reference

Objective C - String

真的用太多了...不過用了很多還是記不住XD
腦容量大概2k吧我....

============== 字串搜尋 ================
比對字串內容 - string2 去比對 string1內容
NSString *string1 = @"我是個大笨蛋";
NSString *string2 = @"笨蛋";
NSRange range = [string1 rangeOfString:string2];

//print出來
NSLog(@"位置:%d || 字串相同長度:%d", range.location, range.length);


NSRange range = [字串 rangeOfString:字串];
range.location 為所在位置
range.length 為字串相同長度

由以上的code可以得到一長串的句子中哪幾個字是你要的
是從哪一個字元開始,長度為何

※如果一串字中有好幾個重複的字 ex:我是個超級大笨蛋笨蛋笨蛋
他只會找到地一個笨蛋


============== 字串比對 ================
比對兩個字串是否相同
NSString *myString = @"我是個大笨蛋";
NSString *string1 = @"無敵大笨蛋";
NSString *string2 = @"我是個大笨蛋";

//結果為false / NO
if( [myString isEqualToString:string1 ] )

//結果為true / YES
if( [myString isEqualToString:string2 ] )


[字串 isEqual:字串] or [字串 isEqualToString:字串]
在比對字串時上面兩個用法都可以用
用法詳細區別請去看官方library...

============== 抽取字串 ================
從字串開頭開始擷取到指定位置
很抽象對吧...由範例比較好懂

NSString *string1 = @"我是個笨蛋";
NSString *string2 = [string1 substringToIndex:2];

//print "我是"
NSLog(@"string2:%@",string2);

[字串 substringToIndex:數字];
由上面這範例可以清楚了解到所print出來就是從字串頭開始算你要幾個字

--
當然也可以從想要的地方開始找
NSString *string1 = @"我是個笨蛋";
NSString *string2 = [string1 substringFromIndex:3];

//print "笨蛋"
NSLog(@"string2:%@",string2);


[字串 substringFromIndex:數字];
從某一個字開始找字串

--
任意取出字串中想要的部份
NSString *string1 = @"我是個笨蛋";
NSString *string2 = [string1 substringWithRange:NSMakeRange(1, 4)];

//print 是個笨蛋
NSLog(@"string2:%@",string2);


[字串 substringWithRange:NSMakeRange(起始點(數字), 終點(數字))];
就可以直接取得想要的部份


相關連結
iOS Library
iOS Library - NSString Class Reference

iOS UIPickerView tutorial - IB

UIPickerView究竟是啥(請見下圖)


這是個在iphone內相當常見的一個功能
還可以切成好幾個欄位來作選取滾動
操作上是相當好用的
但是該如何切入使用呢?

首先開啟Interface Builder隨便拉一個UIPickerView


接著來看看有哪些屬性
先點下Inspector


就會出現這畫面,告訴你這個UIPickerView內有哪些東西可以來設定


但是光這樣拉UIPickerView compile後也是看不到任何內容
記得要把delegate還有dataSource連結上File's Owner
以及在.h檔內加上IBOutlet
#import

/*
UIPickerViewDelegate, UIPickerViewDataSource
上面這行是最重要的東西,也就是所謂的Delegate
一定要加入
*/
@interface UIPickerViewViewController : UIViewController {
//這兩行是讓Interface Builder裡面拖拉的物件連結在一起
IBOutlet UIPickerView *myPicker;
IBOutlet UILabel *myLabel;

//等一下要丟入的內容的陣列
NSMutableArray *myArray;
}

//這兩行是用property方式管理記憶體
@property (nonatomic, retain) IBOutlet UIPickerView *myPicker;
@property (nonatomic, retain) IBOutlet UILabel *myLabel;

@end


存檔後繼續開啟Interface Builder再來玩一下連連看
File's Owner上面點下右鍵連到picker


File's Owner上面點下右鍵連到label


如果你動作都跟我長得一樣現在在File's Owner上面應該會長這個樣


接著就是把內容丟入picker啦
開啟.m檔 直接把這些貼進去
#import "UIPickerViewViewController.h"

@implementation UIPickerViewViewController

//有使用property請記得這邊也要相對應
@synthesize myPicker, myLabel;

- (void)viewDidLoad {
[super viewDidLoad];

//給這個陣列一個記憶體位置
myArray = [[NSMutableArray alloc] init];
//一次塞100行進去看起來比較厲害
for(int i = 0; i < 100; i++){
//[陣列名稱 新增一個內容:內容(這邊給他一個字串)];
[myArray addObject:[NSString stringWithFormat:@"這是第 %d 行",i+1]];
}

}

/*************************************************************/
//當前所選擇為哪一項
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
//把選擇到的丟入 myLabel中顯示出來
myLabel.text = [myArray objectAtIndex:row];
}

//設定滾輪總共有己欄
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)thePickerView {
return 1;
}

//設定滾輪總共有幾個項目
- (NSInteger)pickerView:(UIPickerView *)thePickerView numberOfRowsInComponent:(NSInteger)component {
return [myArray count];
}

//設定滾輪每一個行位內容為啥
- (NSString *)pickerView:(UIPickerView *)thePickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
return [myArray objectAtIndex:row];
}

/*************************************************************/


- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];

// Release any cached data, images, etc that aren't in use.
}

- (void)viewDidUnload {
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}


- (void)dealloc {
//記得記憶體要把他給釋放掉(必須在[super dealloc]前)
[myPicker release];
[myLabel release];
[super dealloc];
}

@end


完成後的demo影片


下次再來介紹如何使用code直接在.m檔內實做UIPickerView以及UIDatePicker

相關連結
iOS UIPickerView Class Reference
Download this example

Google Analytics for Picasaweb

從很早很早以前就對picasa不能紀錄每張照片瀏覽次數很度爛
明明就是個很簡單的功能(有了也是很兩光)
最近google對於他自家的軟體整合性有大幅度的提昇

就拿自次主題的picasaweb來說好了
以前要再google earth上面能夠看到有座標的照片一定要去申請Panoramio
不然你Picasaweb標滿了座標在google earth上面也看不到
現在每張照片點開後右下角(如下圖)就有選項了


回到主題
前幾天不小心發現到現在有這功能"使用「Google Analytics (分析)」追蹤相片的觀賞次數"
不知道Google Analytics究竟是啥鬼?請看先前介紹
接著又到step by step啦
step 1:開啟你的picasaweb點選右上角的設定>>相片設定



step2:勾選"相片追蹤:「Google Analytics (分析)」可為您追蹤相片的瀏覽人數。"
此時候面會出現一個框要你輸入號碼,先別鳥他


step3:開設Google Analytics
進入自己的google帳戶內找出他


step4:建立新帳戶(新增一個追蹤服務)


step5:跟著他所要求慢慢輸入
重點!! "網站網址:"這邊要填入"http://picasaweb.google.com"


step6:完成後在"報表"欄位上會看到一串英文用力把他複製起來


step7:回到picasaweb這邊把剛剛複製的貼上


step8:慢慢等待
照官方說法要24小時...不過實際上似乎不用這麼久
反正隔一天應該就可以好了...如果沒有好表示...你步驟有錯

相關連結
此設定Google教學
Google Analytics介紹

周春明 - 計程車的一片天



今天去聽了他本人的演講
演講內容確實蠻感人的,有種感染力
面對這種環境下依然可以順利的生存確實很強勁
聽完後大致上花了一兩分鐘思考整理
1.差異化經營 - 再競爭激烈的環境中要如何脫引而出這個很大的關鍵,能夠搶到先機持續下去肯定會有相對的成效,想要達成差異化我認為最快的途徑就是跨領域,結合不同領域的專長創造出新的應用,就以這角度來看,大學畢業後一定要走相同領域的路嗎?我真的覺得未必,未來肯定是要絕對的專業與跨領域的人交互合作,就看每個人如何去定義自己。

2.時時刻刻保持危機感 - 當你還沈靜在成功的喜悅同時會造成更多的盲點,而這些盲點也將會是致命傷,時時刻刻警惕著自己,不能忘記原點,更不要怕面對未來。

3.以顧客為中心 - 服務頁來說應該沒有比這更重要,簡單來說就是以人為中心,將心比心,幫顧客想到更多,能想到別人沒想到的部份就是成功的關鍵,就像設計一樣,創意存在於生活中,看到別人呼略掉的部份,將其加以包裝。

4.隨時保持觀察、聆聽 - 外在環境每分每秒都在變,關心身邊週遭的事,關心別人的事,關心世界的事,蝴蝶效應就是這樣來的,地球就這麼大,誰知道國外發生了一件事情會跟你沒有關係?

老實講看到演講過程中一堆人拼命抄ppt上面的嘉言美句,然後再把他倒背如流...又怎樣?說 誰不會?能夠將其實踐你就不是作在台下聽的那位,就算站在台上也要保持危機感,時刻的充實自己,學無止盡。回家問父母「有沒有需要幫忙的?」還不如用雙眼去觀察,用雙手去實踐。每一天都當作是自己的最後一天,精彩的去實現,一個人很厲害沒有用,要能讓所有人都跟你一樣厲害才有用。

MAC將隨身碟/硬碟代替光碟

抱歉這標題真的想不到啥好詞,總之重點就是常常我們有映像檔在安裝軟體時一定要燒成光碟,如安裝系統,如果在沒有其他台電腦可以直接作轉移的時候少了光碟還真是不知道該怎麼辦(當然還是有方法啦...但現在當作不知道),空白光碟片也是要錢,複寫片更是不便宜,只是為了久久一次的系統還原或幫別人裝(好人服務)實在有點浪費。

Step1:準備的就是個隨身碟(要用外接硬碟也都ok,只要能塞下光碟的容量),然後插入電腦中

Step2:打開磁碟工具程式(應用程式/工具程式/磁碟工具程式.app)
或者可以從finder/前往/工具程式/磁碟工具程式.app
再懶一點可以在finder按下"shift+command+U"就可以開啟工具程式,再找到磁碟工具程式即可


step3:找出親愛的隨身碟,點選回覆
在"來源"將準備好的光碟映像檔托移上去
在"目標"將親愛的隨身碟拖移上去


Step4:按下回覆
系統會問你是否要清除上面的內容,要省下一片空白光碟的錢,當然要!


Step5:輸入密碼,系統要確定你不是壞人想亂洗資料(我掰的)


Step6:準備零食飲料+電影...漫長的等候時光是不可以隨意浪費的!


Step7:完成
完成後會跳出這種畫面,就像你剛放入光碟進系統的自動執行一樣


桌面上則會出現光碟(如果有開啟顯示的話)


如果你也按照步驟到這邊恭喜你已經成功省下一片空白光碟,這用法不僅限於mac,要製作windows上得光碟一樣可以用,光碟在哪讀都一樣。

MAC軟體介紹

由於台灣蘋果的偉大舉動讓蘋果在台市佔率大幅提昇
個人使用Mac OS系統也好一段日子在此就將常用軟體分享一下

==================== 3D ====================
工業畫圖、空間、建築
Alias(要錢)
工業繪圖用,不過我對他不熟,使用上與pc有哪邊不同也不知道XD

Google SketchUp / Google SketchUp pro(要錢)
這不用多說大家應該都知道,快速構成空間很好用

Rhino(beta)
pc版的要錢,mac版目前還在beta,只要去官方申請就會給你下載連結

VectorWorks(要錢)
畫空間用的,不過我也跟他不熟XD

動畫
Alice(要錢)
跨平台,抓完後就沒啥用,跟他不熟

blender
open source、跨平台,但是我跟他不熟

Cinema 4D(要錢)
使用起來跟pc版差不多

daz(要錢)
基本上抓完後就沒啥用,不熟

MAYA
使用上跟pc版差不多
不過真的要深入玩他也堅持再mac上面...強烈建議換mac pro

ZBrush
只有使用過幾次,由於沒使用過pc版不知道差別在哪

Autodesk 3ds max
聽說快要出mac版了,好用歸好用但是舊版本bug幾乎都不鳥他,每年小改就推一個新版,沒錯!就是要錢
不過上有政策下有對策

================= 多媒體、繪圖類 =================
Adobe(要錢)
Photoshop、illustrator、Flash、Flash Builder(Flex)、Dreamweaver、InDesign、Premiere、After Effect、#@$@#%
基本上都有支援mac,沒記錯也是從mac起家的,使用上與pc幾乎是沒差,不過iOS不愛Flash

Autodesk sketchbook pro(要錢)
支援繪圖板,強力推薦的東西,想要手繪或直接用手稿作點小筆記的話真的會愛上他
pc也有,甚至還有iOS版本

Freemind
記憶管理軟體,基本上不太常用,主要畫些樹狀圖來作資料整理

Picasa
google的照片管理軟體,超好用,可惜iphoto+aperture幾乎是用不上他...

MindNode
跟freemind很像

calico(要錢)
接照片用,可以把照片接起來就像NEX上面的功能

CaptureMe
畫面擷取、錄影(無聲音),相當好用,不過在mac上面可以按下"shift+command+3"(直接拍下螢幕) or "shift+command+4"(自訂範圍截圖)來使用,但這套好處在可以定住大小直接拍,使用上相當直覺

ScreenFlow(要錢)
畫面錄影(還有聲音)、camera錄影,超級無敵給他好用,錄畫面、視訊畫面、電腦內的聲音、麥克風聲音,相當齊全好用使用上也很直覺,上youtube去查可以發現很多教學都用這錄的

Jubler
製作外掛字幕檔,不過有作過就知道....對時間軸真的很累....

audacity
音樂編輯,open source跨平台,不過介面我不愛

還有些免費的小軟體有人有需要再問吧...懶得打
蒙太奇、向量、小畫家等

==================== 轉檔軟體 ====================
影片、音樂轉檔
PEnGUIn_Encoder
小企鵝,轉mp4,可批次轉,拿來轉給ipod/iphone看相當便利,轉檔速度快,簡單來說就是大推

Evom
轉mp4,專門拿來轉給ipod/iphone用的,懶人用,不過有了小企鵝後沒啥開過

HandBrake
轉avi、mkv,還可以外掛字幕進來一起轉,無敵給他好用

MPEG_Streamclip
轉mpg、avi、@$%@#$@簡單來說就是可以轉很多格式,相當簡單好用

QuickTime
其實他就是超強的影片剪輯、轉檔軟體

Switch
轉音樂用

==================== 播放器 ====================
iTunes
mac內建,聽音樂還蠻好用的,不過最主要是ipod、iphone、ipad都綁在上面XD,跨平台

mplayer
看rm時候覺得是最好用的,檔案也小,速度快,外掛字幕會有問題,跨平台

vlc
功能最強大,能播放的檔最多,在字幕上的支援很完整,缺點是全螢幕時候有兩個螢幕以上的話,除了播放中的螢幕外其他都會變成黑畫面(要你專心看影片XD),跨平台

QuickTime
10.6後介面變得比較漂亮,老實說還蠻愛用的,但可播放的格式有限,跨平台

Plex
拿來當htpc時候很好用,操作完全只靠remote或鍵盤,播放rm頓頓的,跨平台
其實在mac內按下"command+esc"也有個播放功能...還可以看1080的電影預告片,使用remote或鍵盤操控

KKBOX
跟pc版沒兩樣,每個月付費就對了,iOS一樣可以用喔

==================== 寫程式 ====================
Xcode
iOS就是要靠他,還可以寫java、c、javascript等,功能強勁

Interface Builder
xcode4後將會被整合在一起,主要是拉介面用的,還有連結id

iphone Simulator
iphone模擬器,由於開發者帳號到現在還沒申請下來,都還在上面測試,不過想要確定Memory Leak排除的話...還是建議在Device上面測試

Processing
跨平台,和pc上面使用完全一樣,不過mac已經把java包起來了,所以在部份library開發上可以省下不少事(但也會遇上其他的鳥問題)

eclipse
跨平台的東西,基本上跟pc沒啥兩樣,要寫Android應該就會乖乖來找他

Smultron(Fraise 新版改名)
小草莓!!很簡單的文字編輯器,可是功能也很強大,但是他沒辦法幫你compile,logo也越改越詭異,輕巧好用

==================== 系統 ====================
ccc
超強勁的系統備份、轉移軟體,操作簡單好用

Data Rescue(要錢)
資料救援,當硬碟要掛點就靠他救資料了

MacTelnet
把終端機的telnet內容包起來

NameChanger
一次轉換大量檔名,相當實用

RAM Disk Utility
顧名思義RAM Disk軟體,使用上相當簡單,PTT MAC版版主寫的,pro版要錢

SimpleRAR
製作RAR檔軟體

VirtualBox
系統模擬,Sun公司出的,免費使用,相當常改版,有越來越強勁的趨勢

chmox
讓你看chm檔(電子書)

CleanMyMac(要錢)
幫你砍掉系統一些沒用的檔案,畫說的一次使用的時候砍了7G吧,很強勁

Toast(要錢)
燒錄光碟軟體,介面也是強勁簡單,藍光也可以用,不過MAC沒有藍光光碟機.....(心酸)

================== 系統外掛 ===================

Growl
畫面中提示,像是Notify的方式來提醒,支援還不少軟體

Filp4MAC WMV(完整要錢)
M$寫給MAC相容他自家檔案的外掛,有些網路電視類東西要有這才可以看

Perian
瑞士刀,影音解碼軟體,支援大多數的影音編碼,像windows中的暴風影音那種東西

NTFS-3G(新款要錢)
在mac上也可以讀寫NTFS這M$的格式

==================== 網路 ====================
Chicken VNC
免費的vnc軟體,簡單好用

CrossFTP
FTP client算是在MAC上面FXP的解決方案,跨平台

Cyberduck
FTP client黃色小鴨,速度慢,不過介面就跟mac系統一樣直覺好用

DropBox
這應該不用多說,超給他好用

iGetter
像是pc的flashGet軟體

MySQL Query,MySQL Administrator
Sun公司出的MySQL管理軟體

Nally
超好用的BBS軟體,作者目前還在當兵,因為iOS版本降價+亂碼被幹到不行

PureFTP
FTP server

Remote Desktop Connention
M$出的給MAC來遠端到M$

SiteSucker
吸塵器,可以幫你一次把網站整個抓下來,就給他一個網址就好

TeamViewer
跨平台遠端軟體,還可以突破沒ip的問題

Transsmit(要錢)
超給他好用又快,但是不便宜,但是強推!

TVUPlayer
可以看國外電視頻道,在看些國際賽事很好用

Zenmap
跨平台軟體,但大概只有在當網管類的才比較會用上

================= 辦公室軟體 =================
M$ office(要錢)
跟windows版功能一樣,介面follow mac,剛開始使用應該會不大習慣,不過有iWork我也沒開過XD

omniGraffle professional(要錢)
超好用的流程圖軟體,簡單來說有圖有真相,那他就是真相的工具了

==================== 瀏覽器 ====================
Chrome
google出的,一樣是跨平台,超好用,畫面簡潔

FireFox
跨平台,外掛多,不過沒啥再用...不是我的愛

Safari
apple出的,不過常常會發生出錯當掉....主力還是chrome

================== Apple 軟體 ==================
iLife(要錢)
強勁好用,iPhoto、GarageBand、iMovie、iWeb都相當好用,除了iWeb外都還蠻常用的

iWork(要錢)
Pages(相當於Word)、keynote(相當於powerpoint)、Number(相當於Excel),pages、keynote都相較於office好用相當多,尤其是keynote,用過他後就沒開過powerpoint,number...是真的想較於Excel遜色

Aperture(要錢)
強勁的照片管理軟體,要調整RAW檔也很好用

Logic Pro(要錢)
音樂編輯軟體,相當強勁

Shake(要錢)
特效軟體,超級給他強勁

Final Cut(要錢)
影片剪輯軟體,強勁到爆炸

Remote Desktop(要錢)
MAC的遠端軟體,走的port為3283、5900,超級強勁

apple系列全都要錢...沒錯

================== Bootcamp ==================
Parallels(要錢)
目前出到6,功能相當強勁快速,可與bootcamp結合

VMware(要錢)
這使用的人也很多,跟上面那套大同小異,我也沒特別去研究兩個的特色,可與bootcamp結合

VirtualBox
免費,sun出的,該有的幾乎都有,但似乎沒辦法直接與bootcamp結合(常常更新沒去測試過這部份)

以上三個都是可以"同時"開啟兩個以上的系統,風扇轉快一點,溫度升高一點...就當作不知道吧
bootcamp
已經內建在系統中,同一時間只可以開起一個系統(ex:Windows/Linux/MacOS/...),但也相對只能開啟一個可以使用全部的效能

==================== 其他 ====================
MacMoney
超好用的記帳軟體,新功能還有網路記帳,一套300露天、Y拍都有賣....好像有廣告嫌疑

Calibre
電子書館裡軟體,如果有在用ipad之類的話相當好用,他可以把pdf之類轉為電子書



以上為小第我使用Mac幾年下來比較常用的軟體
當然還有些小軟體、外掛沒介紹到....但是太多太雜(我承認就是懶...)
以及weiget也有很多好用的如iStat(監測系統狀況)
不過有問題就直接問或mail來都可以
太專業的問題就還是別問我了...我只會超級專業

剛開始使用mac還有裝bootcamp來當作備援....怕使用上會不習慣
但幾年下來bootcamp已經砍掉了....一年開不到幾次
會開pc都是因為網路銀行的鳥問題,但是VirtualBox就可以幫我解決了
網路銀行這問題就不得不提到玉山銀行,支援Safari、chrome
在mac上面也可以歡樂使用
郵局的ipost safari也可以使用
但是要用晶片卡直接轉帳之類的還是要開windows

會愛上mac主要原因是
不管是生活或工作上現在都要仰賴網路、電腦
我不是什麼魔人,整天就是搞些超頻、3d mark等測數字
也沒那種興趣
電腦應該是要來輔助我的生活
讓我生活更加便利
每天掃毒、資料重整動不動就系統死掉重灌
太浪費我的時間

在3d、遊戲上不能不推pc
是個便宜又強勁的方案
但近幾年沒啥玩遊戲
WAR3、WOW、SC2、Diablo我愛的遊戲都有mac版(Blizzard我愛你>\\\\\<)
加上工作上3d的需求很少(跟3d有關大多也只有openGL.....)
少量簡單的3d還能更應付,我不是專業繪圖者

linux也很愛,但是太多工作上會需要的軟體他都沒有
所辦法阿~(攤手)