我覺得初學 ios 開發最容易搞不懂的就這部分,這裡有個小小的舉例解釋得蠻清楚的
Git 基礎教學資源總整理
安裝 Git
在 Mac 上安装 Git 有多种途径:最简单的方法就是使用 Git OS X Installer。打开 Google Code 上的 git-osx- installer 页面,下载最新的安装包。现在最新的是 Git 1.7.5。挂载 dmg 镜像安装 Git
– 各種 OS 下安裝 Git
Git 指令的簡單教學
Git 觀念與投影片集合
Git 圖形化界面工具及延伸
Stanford CS193p Fall 2011 第一堂課筆記
淺談 iOS 架構
開發iPhone應用程式的時候,首先要先從上層著手,盡量使用Objective-C包裝後的介面來存取系統的功能,也就是透過UIKit framework搭配Foundation framework來進行開發,而當面對一些比較複雜的功能,像是多媒體的處理或是繪圖,再往下層去找尋相關的framwork來完成
MVC 架構的簡介
- Model 和 View 絕對不能有關聯
- Controller 和 View 之間的溝通透過 target action (由 controller 設定 target,在 view 做出設定的動作之後,向 controller 作出匯報動作,並以 delegate 判斷是否做某些動作)
- View 不擁有顯示在它上面的所有資料或實例變數 (instance variable),只是用來顯示物件而已 (那 view 該如何知道它必須顯示多少資料? 則是透過 controller 的 delegate 的委托)
- Controller 存在的其中一個目的在於為 View 解釋 (interpret/format) Model 想要給 View 的資訊
- Model 不能直接對 Controller 溝通,而是透過 iOS 裡的 radio like 機制 來向 controller 發出通知叫它來 check Model 目前的狀態 (這通知只會告訴 controller 有狀況發生,是什麼狀況則由 controller 自己去確認)
Objective-C 語言特性的介紹
- private methods:只有宣告在 .m 則就是 private
- .m 相當於 .c,import 相當於 include
- object:
Objective-C雖然也是有物件導向功能的C語言,跟C++相比,有一些不同之處需要注意。由於一開始的設計,Objective-C的物件概念比較偏向Smalltalk,也就是,物件之間的溝通是透過訊息傳遞(message passing)的模式。而該物件在針對訊息產生動作(actions)。這概念有點類似C++中的函式呼叫(function call),但不同的是,在Objetive-C中,即使那個物件沒有定義相對的動作,你還是可以針對那個物件傳送訊息,並不會產生錯誤。
而每一個物件當然也會有他對應的狀態(state),這些狀態通常就是另外的一個物件。舉例來說,一個車子物件他會有輪子的狀態,但這輪子本身便又是另外一個物件,可以針對這個物件傳送不同的訊息。
而Objective-C的每個物件便是由狀態和動作所組成的。而在Cocoa Touch的開發上,前端的使用者介面(UI),上面的每個元素,像是文字輸入框、或是按鈕等等,其實都是物件的狀態。而當按鈕被觸碰、或是文字框輸入了文字,便會針對物件傳遞訊息,讓物件做相對應的動作去處理。
(objective-c 語言的部分需要重看投影片再摘錄重點)
Objective-C MD5 加密
MyExtensions.h
@interface NSString (MyExtensions) - (NSString *) md5; @end @interface NSData (MyExtensions) - (NSString*)md5; @end
MyExtensions.m
#import "MyExtensions.h"
#import <CommonCrypto/CommonDigest.h> // Need to import for CC_MD5 access
@implementation NSString (MyExtensions)
- (NSString *) md5
{
const char *cStr = [self UTF8String];
unsigned char result[16];
CC_MD5( cStr, strlen(cStr), result ); // This is the md5 call
return [NSString stringWithFormat:
@"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
result[0], result[1], result[2], result[3],
result[4], result[5], result[6], result[7],
result[8], result[9], result[10], result[11],
result[12], result[13], result[14], result[15]
];
}
@end
@implementation NSData (MyExtensions)
- (NSString*)md5
{
unsigned char result[16];
CC_MD5( self.bytes, self.length, result ); // This is the md5 call
return [NSString stringWithFormat:
@"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
result[0], result[1], result[2], result[3],
result[4], result[5], result[6], result[7],
result[8], result[9], result[10], result[11],
result[12], result[13], result[14], result[15]
];
}
@end
http url redirect 對 SEO 的影響
使用 標籤進行重新導向可能會降低搜尋引擎排名。但如果沒有 URL 值單純只是重新整理頁面則不會影響,網頁重新導向應提供包含新網頁位置的訊息,以及足夠的時間讓使用者閱讀訊息。若網頁重新導向的逾時期間少於五秒,搜尋引擎的排名可能會因此下降。
<meta http-equiv="refresh" content="5;url='http://www.google.com/'" />
若要重新導向網頁,請考慮改用 HTTP 重新導向。HTTP 重新導向較有可能將舊網頁的權威度轉移至新網頁,或是 javascript 來設置!
<script>
setTimeout("window.location.href='http://www.google.com';",1000);
</script>
用 javascript 探測當前網頁位置
假設現在我有個網頁,網址是:http://functionlab.org:80/tools/tcpproxy.php?user=FUNction#showscript
如果這網頁上有以下JavaScript 程式碼
<script type="text/javascript">
//http://www.w3schools.com/htmldom/dom_obj_location.asp
document.write("location.href : "+location.href+"<br/>");
document.write("location.protocol : "+location.protocol+"<br/>");
document.write("location.hostname : "+location.hostname+"<br/>");
document.write("location.host : "+location.host+"<br/>");
document.write("location.port : "+location.port+"<br/>");
document.write("location.pathname : "+location.pathname+"<br/>");
document.write("location.search : "+location.search+"<br/>");
document.write("location.hash : "+location.hash+"<br/>");
</javascript>
則該網頁上會顯示:
location.href : http://functionlab.org:80/tools/tcpproxy.php?user=FUNction#showscript
location.protocol : http
location.hostname : functionlab.org
location.host : functionlab.org:80
location.port : 80
location.pathname : /tools/tcpproxy.php
location.search : ?user=FUNction
location.hash : #showscript
Box.net 回饋 Android 用戶大放送 50G 免費空間

去年底 Box.net 回饋蘋果用戶大方放送了 50GB 免費空間,現在換 Android 的用戶有福拉,只要是 Android 的用戶一樣可以下載 Box 的 APP 並登入也可以享受到 50GB 的免費雲空間,但是這活動只有到3月23號,若是超過時間可就沒有囉!沒有 Android 手機或平板的朋友趕快去就一臺來登入馬上就增加了喔,話說,一定有很多人和我一樣是同時有 iOS 和 Android 的機器,心裡肯定在想去年底用 iPad 增加過了現在還可以用 Android device 再增加空間嗎?
天底下哪有這麼好康的事,我已經去試過囉空間是沒有任何變化的,所以各位不用打歪主意啦! 話說 Dropbox 的服務也很好用,快點這個推薦連結去註冊並下載軟體,讓我增加 500mb 吧!
訪問 Facebook IPv6 網域,讓你變新版臉書

因為前一陣子剛 Facebook 大改版後很多人非常不習慣,塗鴉牆訊息過濾後變得更精簡,而旁邊多了一個訊息爆炸的即時動態邊欄,聽了罵聲之後他們似乎開始做 A/B testing,我目前在用的帳號改版一陣子後便又回到之前的版本,而據我所知好像還是有許多人沒有變回來,甚至不是重度使用者 (朋友數少於一定值) 根本就連改都沒有改過!
昨天一個小發現還是紀錄一下,透過 IPv6 版本的網域 2620:0:1cfe:face:b00c::3 (www.v6.facebook.com) 訪問 Facebook,即便你以前從未改版過 (最新版的分類塗鴉牆和旁邊的動態 Ticker) 只要是這個網域下都會直接變最新版本喔! (我有用沒有改版過的其他帳號試過了) 如果你是資訊焦慮者喜歡有 Ticker 來打擾你的美好生活那就都用這網址訪問臉書吧! (不過在這網域下發訊息似乎會有小 bug, 反過來來說,我不確定目前在最新版的狀態下,造訪這網域是否會回到前一版本,請有測試過的人回報一下)
Continue reading “訪問 Facebook IPv6 網域,讓你變新版臉書” »
Box.net 回饋蘋果用戶大放送 50G 免費空間

網路硬碟服務 Box 雖然不像 Dropbox 有 referrals 推薦機制 (最多可以增加 16G,每推薦一個人就得到 500mb)或是玩一些遊戲活動來增加自己的空間,不過他一開始就有 5G 的大空間 (Dropbox 一開始僅 2G) 現在還推出了一個特別的活動,只要你是 iPhone 或是 iPad 的用戶,只要下載他們 Box iOS app 2.4.3 最新版本的應用程式,你就可以馬上升級成 50G 的雲端空間,並且單檔上傳限制也從 25mb 變成 100mb,下載完就可以馬上免費使用這些雲端服務囉,整個活動從 10/12 一直持續五十天到美國時間 2011 年 12 月 2 日,趕快去下載吧!
Continue reading “Box.net 回饋蘋果用戶大放送 50G 免費空間” »
Huffington Post 月流量首度超越 NYTimes

根據 comScore,由被 AOL 收購後的 Huffington Post 流量 (月獨立訪客) 在今年四月首次超越紐約時報 (35.5m vs. 33.6m),AOL 的 Brad Garlinghouse 在他的 twitter 上說:「網路六年打敗百年媒體 (Six years to disrupt 100 years.)」這個由三千多位素人作家寫手所組成,2005 年上線的網站正急速的改寫歷史,網路變化越來越快,人很多生活模式也不斷在轉變,只能說要抓住網路的商業模式也越來越困難。 (你看,連這種教學文都有了!)
ps. 也有人指出,他們會超越紐約時報主要原因是 AOL News 為他們導入了部分的流量,不過不變的事實是這隻成長中的媒體怪獸將會越來越大隻,朝向 CNN 或 Yahoo News 等月獨立訪客七八千萬的目標邁進!
資料來源: Business Insider

