這篇文章寫得太好了!!!
我怕這篇文章的原連結會消失所以最後面有全文,下面是我摘錄的精彩片段:
「無論是個人、企業還是國家,只想著贏過對手的人,最後往往是輸家。蘋果難道是為了打倒微軟或PC而誕生嗎?Google難道是想打敗Yahoo!才創辦?創造成功的個人、企業或國家,從來是想著如何達到自己所設定的願景,想著如何達到目標,而非打倒沿途碰到的競爭對手。
一如競選不是為了打敗競選對象的遊戲,而是為了宣揚自己施政理念以獲得青睞的過程,經濟發展也不是打敗韓國、日本或美國,而是朝自己的目標邁進。
經濟發展應該只是手段,用來完成台灣社會夢想的手段,而非目標,我們從來都搞錯了順序,甚至瞧不起願景,只在乎賺錢。
台灣經濟的振興,不需要假想敵,而是需要新的願景,到底台灣要往哪裡去?變成怎樣的一個國家?島上的人民希望過怎樣的生活?
讓我們平心靜氣想一想,台灣的經濟發展的願景是什麼?台灣要在國際分工體系中扮演什麼樣的角色?
韓國跟多少國家簽訂FTA,根本不是重點,重點是台灣社會到底找到自己未來二十年要走的路沒有?如果台灣連自己想成為什麼樣的國家,以什麼樣的面貌在世界分工體系中嶄露頭角,就算全世界都跟台灣簽定FTA,台灣還是不會贏過韓國,GDP就算再成長再多,果實也落不到小老百姓的口袋。
丟掉腦中的潛在競爭假想敵吧!重點是我們想成為什麼樣的國家,為此需要做甚麼樣的基礎建設調整與產業政策修訂,而不是打倒韓國!」
全文:
最近一陣子,台灣因為中韓終於達成簽訂FTA的協議,吵得滿城風雨。政府和企業大老紛紛跳出來高呼不妙,直指中韓簽訂FTA後台灣經貿將因此重創,然後話鋒一轉,直指台灣應該趕快簽兩岸服貿協議,通過自由貿易經濟區等法案,提升台灣競爭力。
雖然也有不少學者專家反駁政府誇大其實,不過,恐怕許多小老百姓對於兩造雙方的說法是有聽沒有懂,唯一知道的一點是,如今的台灣不只輸給中國,而且也輸給了韓國,這兩國過去都比台灣弱,如今隨便一國都比台灣強,而且還打算在經貿上聯手,感覺台灣會被邊緣化。
中韓FTA在台灣引爆的爭議,說穿了就是台灣害怕被國際分工邊緣化,以及十幾年來景氣停滯的焦慮,遲遲無法有效排除。
可能還有很多人不清楚,這世界上早就沒有亞洲四小龍了。香港被納入中國的一個特別行政區,韓國和新加坡早就邁入已開發國家,且以上三個國家地區的GDP都遠遠甩開台灣,不是達到三萬美元就是往三萬美元挺進,且都順利完成經濟發展的轉型,擺脫了代工製造業。只有台灣,面臨土地與人事成本不斷飆升之後,仍不思轉型升級,只想著往外探詢更便宜的生產基地,剛好碰到中國崛起跟東南亞的抬頭,製造業把生產基地往外撤,台灣繼續眷戀代工製造業,直到下一波的土地與人事成本抬頭壓縮代工製造業的毛利為止。
台灣被國際分工邊緣化的原因,根本不是沒跟中國簽自由貿易協定或沒能加入東協的問題。過去二十年來,台灣靠著中國與東協為了發展經濟,跟台灣的商人簽了多少優惠台灣的條款,比韓國多拿多少優勢,韓國還曾經被東亞金融風暴重創,差點滅頂,發展條件比台灣差很多好嗎?
台灣社會有一個非常大的思考偏誤,錯以為在經濟發展道路上,只要能打敗其他對手,就能自動升級。所以,過去日本、新加坡成為我們的潛在假想敵,後來是中國和韓國,也許將來將會是越南、馬來西亞等東協國家也說不一定,因為台灣只想著維持既有模式,根本不想進化升級。
當韓國的目標是成為亞洲的德國,與美日中等大國平起平坐,在國際分工上佔一個獨一無二的缺,讓世界不可缺乏韓國的存在,又怎麼會把台灣看在眼裡?
為此,韓國砸大錢做次世代產業的基礎建設,扶植文創產業,推動韓國品牌,向全球布局與行銷。
反觀台灣,卻只會搞抹黑韓國來自我感覺良好。部分媒體使用中國的山寨假新聞和韓國在國際賽事上的一些醜聞,極力醜化韓國,彷彿在暗示國人,韓國的崛起與成功都是靠作弊換來,以此逃避台灣落後韓國的事實。
無論韓國有沒有和中國簽訂FTA,台灣早就輸給韓國了,韓國從來沒把台灣放在眼裡,也沒當成競爭對手,韓國堅持走自己的國家發展道路,只是剛好有部分產業跟台灣重疊,在國際市場上有所競爭而已。台灣卻反而以此為韓國社會的全貌,成天把韓國當假想敵,什麼經貿協議簽不過都要牽拖將會輸韓國多少。
無論是個人、企業還是國家,只想著贏過對手的人,最後往往是輸家。蘋果難道是為了打倒微軟或PC而誕生嗎?Google難道是想打敗Yahoo!才創辦?創造成功的個人、企業或國家,從來是想著如何達到自己所設定的願景,想著如何達到目標,而非打倒沿途碰到的競爭對手。
一如競選不是為了打敗競選對象的遊戲,而是為了宣揚自己施政理念以獲得青睞的過程,經濟發展也不是打敗韓國、日本或美國,而是朝自己的目標邁進。
經濟發展應該只是手段,用來完成台灣社會夢想的手段,而非目標,我們從來都搞錯了順序,甚至瞧不起願景,只在乎賺錢。
台灣經濟的振興,不需要假想敵,而是需要新的願景,到底台灣要往哪裡去?變成怎樣的一個國家?島上的人民希望過怎樣的生活?
讓我們平心靜氣想一想,台灣的經濟發展的願景是什麼?台灣要在國際分工體系中扮演什麼樣的角色?
韓國跟多少國家簽訂FTA,根本不是重點,重點是台灣社會到底找到自己未來二十年要走的路沒有?如果台灣連自己想成為什麼樣的國家,以什麼樣的面貌在世界分工體系中嶄露頭角,就算全世界都跟台灣簽定FTA,台灣還是不會贏過韓國,GDP就算再成長再多,果實也落不到小老百姓的口袋。
丟掉腦中的潛在競爭假想敵吧!重點是我們想成為什麼樣的國家,為此需要做甚麼樣的基礎建設調整與產業政策修訂,而不是打倒韓國!
原網址:台灣最大的錯誤─把韓國當成假想敵 王乾任
2014年11月24日 星期一
論金馬獎與文化統戰
金馬》前8獎中國包辦 網友酸:乾脆辦在北京
今年(2014)金馬獎得獎的又幾乎都是中國的電影,因為在大腸花效應後(你沒看錯就是大腸花),台獨的議題完全浮上檯面,網路上開始有在討論關於文化統戰的議題,下面是一些整理:
這三篇文章在網路上流傳最廣
台灣電影或許技不如人,但假裝金馬獎沒有「文化統戰」不是太傻就是太天真 王乾任
從金馬獎的歷史看文化統戰 Hao Chuang
這世界並不存在第二個影展如同金馬獎一樣,是以泛主義概念作為分類原則 佛國喬
兩篇支持金馬獎的
金馬獎已經是全球華人最有公信力的電影獎 陳玉勳
今年(2014)金馬獎得獎的又幾乎都是中國的電影,因為在大腸花效應後(你沒看錯就是大腸花),台獨的議題完全浮上檯面,網路上開始有在討論關於文化統戰的議題,下面是一些整理:
這三篇文章在網路上流傳最廣
台灣電影或許技不如人,但假裝金馬獎沒有「文化統戰」不是太傻就是太天真 王乾任
從金馬獎的歷史看文化統戰 Hao Chuang
這世界並不存在第二個影展如同金馬獎一樣,是以泛主義概念作為分類原則 佛國喬
兩篇支持金馬獎的
金馬獎已經是全球華人最有公信力的電影獎 陳玉勳
2014年11月23日 星期日
如何把App上架到App Store上?
這是我找到的一些教學影片
Publishing on app stores - Liquid State
How To Submit An App To Apple's App Store
教學文章:
Publishing to the App Store
Checklist for Submitting an App to the App Store
Building Your App for Distribution
蘋果官方文件:
App Store Distribution
App Distribution Guide
其他相關文章:
IPA Support for Ad Hoc and Enterprise Deployment
Xcode透過Ad-Hoc發佈App給其它裝置測試使用
Publishing on app stores - Liquid State
How To Submit An App To Apple's App Store
教學文章:
Publishing to the App Store
Checklist for Submitting an App to the App Store
Building Your App for Distribution
蘋果官方文件:
App Store Distribution
App Distribution Guide
其他相關文章:
IPA Support for Ad Hoc and Enterprise Deployment
Xcode透過Ad-Hoc發佈App給其它裝置測試使用
2014年11月1日 星期六
Ubountu 教學
什麼是LAMP?
Short for Linux, Apache, MySQL and PHP, an open-source Web development platform, also called a Web stack, that uses Linux as the operating system, Apache as the Web server, MySQL as the RDBMS and PHP as the object-oriented scripting language. Perl or Python is often substituted for PHP.The key to the idea behind LAMP, a term originally coined by Michael Kunze in the German magazine c't in 1998, is the use of these items together. Although not actually designed to work together, these open source software alternatives are readily and freely available as each of the components in the LAMP stack is an example of Free or Open Source Software (FOSS).
資料來源:http://www.webopedia.com/TERM/L/LAMP.html
Mac上的連線軟體:
Mac OS X 平台有哪些好用的 SSH 客户端?在Mac上連接SSH
求大侠推荐一个mac下好用的ssh工具
[Mac] SSH Tunnel Manager – 開啟 SSH 通道,透過遠端主機建立 Proxy 代理伺服器!
Is there a GUI SSH client for OS X?
圖形化介面
WinSCP alternatives for Mac OS XFugu
SSH連線
直接打開Mac的終端機工具,輸入下面的指令就可以進行SSH連線了:ssh 使用者帳號@IP
例:ssh im@140.135.113.43
儲存連線,這樣每次連線就不用輸入指令
基本指令
cd:前往某個資料夾,例:cd var
cd ..:前往目前資料夾的母資料夾(..前面要有一個空白)
vim:編輯,如果該檔案不存在,系統就會自動幫你建立
pwd:查看目前所在位置的路徑
rm:刪除某個檔案,remove的縮寫
mkdir:新增資料夾,make directory,直翻成中文是新增目錄,經過修飾就是新增資料夾囉
mv:重新命名,其實在Linux底下沒有處理rename的直接指令,不過可以透過mv這個指令,得到重新命名的效果。mv原本是用來處理「移動檔案」到不同的目錄底下,因此可以透過mv將原檔案移至原目錄底下新的檔名,就可以嗄到重新命名的效果。範例:將a.out改名稱為b.out,mv a.out b.out
建立新的使用者帳號
1. sudo useradd -m [欲建立的使用者帳號名稱]:系統會要求你再輸入一次超級使用者的密碼
2. sudo psswd [使用者帳號]:設定密碼,系統會要求你輸入兩次做確認,如果成功的話會出現passwd: password updated successfully
指令教學文
ubuntu(Linux)指令集Ubuntu 常用指令
[Linux] 使用 SCP 指令,讓您傳送檔案至遠端、下載檔案
2014年10月30日 星期四
int vs. NSInteger vs. NSNumber
NSInteger vs. int
NSInteger is typedef'ed based on the target architecture. In other word, it's an architecture-safe (64 vs 32 bit) type to support different platforms and implementations of C. Targeting a 32-bit CPU and OS it's 32-bits wide, on a 64-bit OS it's 64-bits wide.What follows is how NSInteger is defined in NSObjCRuntime.h file :
And this is what Apple say in Foundation Data Types Reference :
When building 32-bit applications, NSInteger is a 32-bit integer. A 64-bit application treats NSInteger as a 64-bit integer.
Simply, the NSInteger typedef does a step for you: if the architecture is 32-bit, it uses int, if it is 64-bit, it uses long. Using NSInteger, you don't need to worry about the architecture that the program is running on.
Apple recommends that you use NSInteger over normal types anyway, I would assume for portability!
結論:除非你有特定要int或是long,要不然就建議用NSInteger,這樣就不必去煩惱使用者用的是32-bit還是64-bit的iDevice。
更深入探討
Why use
int at all?
Apple uses
int because for a loop control variable (which is only used to control the loop iterations) int datatype is fine, both in datatype size and in the values it can hold for your loop. No need for platform dependent datatype here. For a loop control variable even a 16-bit int will do most of the time.
Apple uses
NSInteger for a function return value or for a function argument because in this case datatype [size] matters, because what you are doing with a function is communicating/passing data with other programs or with other pieces of code; see the answer to When should I be using NSInteger vs int?in your question itself...Apple use NSInteger (or NSUInteger) when passing a value as an argument to a function or returning a value from a function.
延伸閱讀:64-Bit Transition Guide for Cocoa Touch
NSNumber
NSNumber is an Objective-C class, a subclass of NSValue to be specific. Where a NSInteger or int will fit in a register, a NSNumber is an object that can hold/encapsulate any scalar type (IIRC - I don't use NSNumber if I can help it. Way too slow.), It can be used when you need an NSObject that holds a scalar value.You can create an NSNumber object from a signed or unsigned char, short int, int, long int, long long int, float, double or BOOL.
One of the primary distinctions is that you can use NSNumber in collections, such as NSArray or NSSet, where an object is required. For example, if you need to add a float into an NSArray, you would first need to create an NSNumber object from the float:
1 2 3 4 | float percentage = 40.5; ... // Create NSNumber object, which can now be inserted into an NSArray NSNumber *percentageObject = [NSNumber numberWithFloat:percentage]; |
Cocoa提供了NSNumber類來包裝(即以物件object形式實現)基本數據類型。
例如以下創建方法:
+ (NSNumber*)numberWithChar: (char)value; + (NSNumber*)numberWithInt: (int)value; + (NSNumber*)numberWithFloat: (float)value; + (NSNumber*)numberWithBool: (BOOL) value;例:NSNumber *n = [NSNumber numberWithInt:5];
將基本類型數據封裝到NSNumber中後,就可以通過下面的實例方法重新獲取它:
- (char)charValue; - (int)intValue; - (float)floatValue; - (BOOL)boolValue; - (NSString*)stringValue;例:int i = [n intValue];
資料來源:
http://www.quora.com/What-is-the-difference-between-NSInteger-NSNumber-int-and-all-the-different-ways-to-represent-an-integer
http://iosdevelopertips.com/cocoa/nsnumber-and-nsinteger.html
http://stackoverflow.com/a/5870916/3295047
http://stackoverflow.com/a/4445224/3295047
http://www.wuleilei.com/blog/335
2014年10月26日 星期日
Local Notification介紹
基本設定
請求使用者運允許發送通知
從iOS 8開始,如果打完上面的程式就執行會出現類似下面這樣的錯誤碼
要把下面這段程式加上去,請求使用者允許App發送通知,我們的Local Notification才能正常運作,在iOS 8之前當然也要使用者的同意,不過可能以前是系統自動幫我們問吧,不過就像我常講的,其實我們不太需要知道以前是怎麼樣,反正現在這段程式是一定要寫就對了!
自訂特定的時間
一般fireDate的設定我們都是使用我們既有的資料或是稍微經過dateByAddingTimeInterval之類的處理,如果要完全自訂一個特定的時間的話,可以參考下面的程式碼。你會注意要我只設定了小時跟分鐘,如果想要設定通知是每天固定發出,只要設定小時跟分鐘就可以了。
alertAction
這段程式有個小問題,它可以執行,但我必須要自己去「設定」那裏把alert sytle從Banners改成Alerts,notification才會顯示成alert的形式,我目前還不知道問題出在哪裡,知道的人拜託告訴我~
icon Badge
注意第三行程式,我們也可以讀取目前的IconBadgeNumber做累加的動作
重複
使用自訂的聲音
我沒想到要使用自訂的聲音竟然這麼簡單,只要將想要播放的音檔匯入project中,再如下面的程式碼打就可以了,不過有兩點需要注意:
1音檔的長度不可以超過三十秒,要不然聲音會播不出來,我在Documentation裡沒看到這項規定,是在stackoverflow裡看到這篇回答才知道的,但我確定有這項限制,因為我之前就是卡關在這裡Orz
2音檔只有一些特定的格式可以
在通知中另外夾帶參數(一般是供其它地方的程式辨識用)
取消Local Notification
取消指定的通知
其實沒有一定要用下面的方式來尋找指定的Local Notification,也可以用其他屬性像是fireDate、alertBody...等,只要你能找到你要的特定通知就可以了。另外,雖然可以抓到自己想要的特定通知,但我試過並不能再修改其屬性。
取消全部
按下發送出來的通知後怎麼處理
當App已經沒有在運作
當App已經還在運作(可能在背景或是或是正在使用)
更深入的探討
用Local Notification實現Alarm
要實作一個Alarm需要做到下面這幾點:
1播放音樂
2在背景執行
3定時
其實上面三點是一句話拆開來講:「在一段時間後在背景播放音樂」
我查了很多資料,發現目前Local Notification是唯一可以完全達到上面要求的方法,但那只是從技術面來看,實際使用的話會遇到兩個問題:
1.1Local Notification的聲音最長只能到三十秒,如果要做的一個鬧鐘的程式,我們絕對不可能讓他只響三十秒,當然我們可以一連排程好幾的Local Notification,可是這樣使用者打開他的iPhone的時候就是看到四五個Notification,這樣的使用者體驗非常差。
1.2我目前想到比較好的方法是:設一連串的Local Notification,只有第一個有設alertBody,後面幾個都設nil,因為我發現如果alertBody設nil,iDevice不會顯示任何東西,但音樂還是會播放。
1.3不過後來經過測試,這樣的UX爛炸了,因為一般我要用自訂的聲音,音檔一般都會像是一首歌之類的,用上面的方法,這首歌每次只會播三十秒就重新播放,越聽只讓我越煩燥而已。
2沒辦法像內建的鬧鐘可以有按鈕讓鬧鐘稍後再播放
我去網路上問,不過看起來應該是無解了Orz
請求使用者運允許發送通知
從iOS 8開始,如果打完上面的程式就執行會出現類似下面這樣的錯誤碼
要把下面這段程式加上去,請求使用者允許App發送通知,我們的Local Notification才能正常運作,在iOS 8之前當然也要使用者的同意,不過可能以前是系統自動幫我們問吧,不過就像我常講的,其實我們不太需要知道以前是怎麼樣,反正現在這段程式是一定要寫就對了!
自訂特定的時間
一般fireDate的設定我們都是使用我們既有的資料或是稍微經過dateByAddingTimeInterval之類的處理,如果要完全自訂一個特定的時間的話,可以參考下面的程式碼。你會注意要我只設定了小時跟分鐘,如果想要設定通知是每天固定發出,只要設定小時跟分鐘就可以了。
alertAction
這段程式有個小問題,它可以執行,但我必須要自己去「設定」那裏把alert sytle從Banners改成Alerts,notification才會顯示成alert的形式,我目前還不知道問題出在哪裡,知道的人拜託告訴我~
icon Badge
注意第三行程式,我們也可以讀取目前的IconBadgeNumber做累加的動作
重複
使用自訂的聲音
我沒想到要使用自訂的聲音竟然這麼簡單,只要將想要播放的音檔匯入project中,再如下面的程式碼打就可以了,不過有兩點需要注意:
1音檔的長度不可以超過三十秒,要不然聲音會播不出來,我在Documentation裡沒看到這項規定,是在stackoverflow裡看到這篇回答才知道的,但我確定有這項限制,因為我之前就是卡關在這裡Orz
2音檔只有一些特定的格式可以
在通知中另外夾帶參數(一般是供其它地方的程式辨識用)
取消Local Notification
取消指定的通知
其實沒有一定要用下面的方式來尋找指定的Local Notification,也可以用其他屬性像是fireDate、alertBody...等,只要你能找到你要的特定通知就可以了。另外,雖然可以抓到自己想要的特定通知,但我試過並不能再修改其屬性。
取消全部
按下發送出來的通知後怎麼處理
當App已經沒有在運作
當App已經還在運作(可能在背景或是或是正在使用)
更深入的探討
https://www.facebook.com/groups/iostw/permalink/906779296016087/
https://www.facebook.com/groups/iostw/permalink/934380229922660/
https://www.facebook.com/photo.php?fbid=10202759629864986&set=gm.967383696622313&type=1
用Local Notification實現Alarm
要實作一個Alarm需要做到下面這幾點:
1播放音樂
2在背景執行
3定時
其實上面三點是一句話拆開來講:「在一段時間後在背景播放音樂」
我查了很多資料,發現目前Local Notification是唯一可以完全達到上面要求的方法,但那只是從技術面來看,實際使用的話會遇到兩個問題:
1.1Local Notification的聲音最長只能到三十秒,如果要做的一個鬧鐘的程式,我們絕對不可能讓他只響三十秒,當然我們可以一連排程好幾的Local Notification,可是這樣使用者打開他的iPhone的時候就是看到四五個Notification,這樣的使用者體驗非常差。
1.2我目前想到比較好的方法是:設一連串的Local Notification,只有第一個有設alertBody,後面幾個都設nil,因為我發現如果alertBody設nil,iDevice不會顯示任何東西,但音樂還是會播放。
1.3不過後來經過測試,這樣的UX爛炸了,因為一般我要用自訂的聲音,音檔一般都會像是一首歌之類的,用上面的方法,這首歌每次只會播三十秒就重新播放,越聽只讓我越煩燥而已。
2沒辦法像內建的鬧鐘可以有按鈕讓鬧鐘稍後再播放
我去網路上問,不過看起來應該是無解了Orz
2014年10月25日 星期六
Xcode相關工具 (未整理)
- Faux Pas for Xcode:可以幫你找出程式碼中各種隱藏起來的臭蟲(三十天試用版、個人版89鎂、企業版189鎂)
- RunEverywhere – An Xcode plugin allowing you to run and stop projects on multiple physical iOS devices.
- Remote – An Xcode plugin for automatic on-device testing allowing you to record and playback macros that run on device.
- RTImageAssets – A configurable Xcode plugin that generates missing image assets based on missing sizes.
- rest2Mobile – An Xcode plugin that allows you to automatically generate code for a REST service.
- DBSmartPanels – A configurable plugin allowing you to automatically hide the debugger and utilities panels when unneeded.
- MarvinXcode – A plugin adding many hotkeyed ccommands for easier selection, duplication, and deletion of code.
- MCLog – A plugin that enhances the debug console with output filtering that can work in real time and supports regular expressions.
- GitDiff – A plugin for easy visualization of modified and changed code based on the projects Git repo.
- ACCodeSnippetRepositoryPlugin – A plugin allowing you to seamlessly integrate the Xcode snippets library with a Git repository.
- Extractor Localizable Strings – A plugin allowing you to quickly turn a string into a localizable string bringing up a popup where you can specify the localized string’s key on hotkey press.
- Peckham – A plugin allowing you to bring up a popup for quickly creating import statements from anywhere within your code.
- XCFui – A plugin allowing you to easily identify unused imports within your code bringing them up as warnings on compilation.
- XprobePlugin – A plugin allowing you to easily browse your application’s memory in a nice UIWebView based interface with filtering and searching capabilities.
- XcodeBoost – A plugin adding many nice features such as allowing you to extract method declarations from your implementation to paste in the header file, highlight based on regex, paste lines while preserving code formatting and more..
- WCGitTagsPlugin – A plugin allowing you to easily add, view, and remove Git tags through a GUI within Xcode.
- BBUFullIssueNavigator – A plugin allowing you to display full content in the Xcode issue navigator (no more ellipsis).
- BBUDebuggerTuckAway – A plugin that automatically hides the debugger when you start typing within the code editor.
- CodePilot – Allows you to quickly search through Xcode projects using keywords allowing you to quickly search and navigate through an Xcode project. Formerly paid plugin now open source and working with Xcode 5.
- ClangFormat-Xcode – A plugin that allows you to format code using the Clang Format tool allowing you to chose from a number of preset configurations or your own.
- XToDo – A plugin that provides an interface allowing you to jump through todo’s, within your code labeled by your comments.
- XCAddedMarkup – A plugin that allows you enabling display of images and hyperlinks within your code using a special markup syntax.
- XAlign – A plugin for aligning your code automatically in user definable ways with a number of sample alignments such as align to first euqals included.
- ShowInGithub – An Xcode plugin allowing you to quickly jump to the corresponding location for a line or block of code on Github or Bitbucket.
- KFCocoaPods – A plugin for working with Cocoapods providing easy downloading and updating of CocoaPods, podfile editing with code completion, and CocoaPods output in the console. (Xcode 5 tested)
- SCXCodeMiniMap – Creates a minimap of your code adjusting the color of the currently visible area of the editor so you can quickly see where you are within your code.
- Injection – Allows you to inject code in real-time to an app running in the simulator or device so that you can tweak your code without recompiling. Formerly a paid plugin, but now available as open source.
- Xcode Fixins - A collection of plugins for minimizing distractions in Xcode, and fixing code completion.
- XVim – Adds many Vim key bindings to Xcode.
- Mini-Xcode – Allows you to remove the large Xcode IDE toolbar to save screen space providing mini scheme and device selection.
- ColorSense – Provides a color picker for adjustments when you highlight a UIColor or NSColor within your code.
- BBUncrustifyPlugin -Enables easy use of the Uncrustify code beautification tool.
- Lin – Provides a neat interface directly within Xcode to make working with NSLocalizedString easier.
- KSImageNamed – Provides auto completion for UIImage imageNamed: within your code by scanning through image files within your workspace.
- HOStringSense – Provides a call out bubble in which you can work with an unescaped version of a string.
- XcodeColors – Allows you to color code messages in the debugging console so you can make errors stand out and easily separate different messages from differing parts of your code.
- AutoresizeMask – Allows you to visualize your autoresizing masks within code.
- JDListInstalledPlugins – Allows you to list your installed plugins, and one click remove.
- Alcatraz – Provides easy install/removal of Xcode plugins, color schemes, and templates. A newer project so there is not too much in there, but a good idea.
RunEverywhere – An Xcode plugin allowing you to run and stop projects on multiple physical iOS devices.
Remote – An Xcode plugin for automatic on-device testing allowing you to record and playback macros that run on device.
RTImageAssets – A configurable Xcode plugin that generates missing image assets based on missing sizes.
rest2Mobile – An Xcode plugin that allows you to automatically generate code for a REST service.
DBSmartPanels – A configurable plugin allowing you to automatically hide the debugger and utilities panels when unneeded.
MarvinXcode – A plugin adding many hotkeyed ccommands for easier selection, duplication, and deletion of code.
MCLog – A plugin that enhances the debug console with output filtering that can work in real time and supports regular expressions.
GitDiff – A plugin for easy visualization of modified and changed code based on the projects Git repo.
ACCodeSnippetRepositoryPlugin – A plugin allowing you to seamlessly integrate the Xcode snippets library with a Git repository.
Extractor Localizable Strings – A plugin allowing you to quickly turn a string into a localizable string bringing up a popup where you can specify the localized string’s key on hotkey press.
Peckham – A plugin allowing you to bring up a popup for quickly creating import statements from anywhere within your code.
XCFui – A plugin allowing you to easily identify unused imports within your code bringing them up as warnings on compilation.
XprobePlugin – A plugin allowing you to easily browse your application’s memory in a nice UIWebView based interface with filtering and searching capabilities.
XcodeBoost – A plugin adding many nice features such as allowing you to extract method declarations from your implementation to paste in the header file, highlight based on regex, paste lines while preserving code formatting and more..
WCGitTagsPlugin – A plugin allowing you to easily add, view, and remove Git tags through a GUI within Xcode.
BBUFullIssueNavigator – A plugin allowing you to display full content in the Xcode issue navigator (no more ellipsis).
BBUDebuggerTuckAway – A plugin that automatically hides the debugger when you start typing within the code editor.
CodePilot – Allows you to quickly search through Xcode projects using keywords allowing you to quickly search and navigate through an Xcode project. Formerly paid plugin now open source and working with Xcode 5.
ClangFormat-Xcode – A plugin that allows you to format code using the Clang Format tool allowing you to chose from a number of preset configurations or your own.
XToDo – A plugin that provides an interface allowing you to jump through todo’s, within your code labeled by your comments.
XCAddedMarkup – A plugin that allows you enabling display of images and hyperlinks within your code using a special markup syntax.
XAlign – A plugin for aligning your code automatically in user definable ways with a number of sample alignments such as align to first euqals included.
ShowInGithub – An Xcode plugin allowing you to quickly jump to the corresponding location for a line or block of code on Github or Bitbucket.
KFCocoaPods – A plugin for working with Cocoapods providing easy downloading and updating of CocoaPods, podfile editing with code completion, and CocoaPods output in the console. (Xcode 5 tested)
SCXCodeMiniMap – Creates a minimap of your code adjusting the color of the currently visible area of the editor so you can quickly see where you are within your code.
Injection – Allows you to inject code in real-time to an app running in the simulator or device so that you can tweak your code without recompiling. Formerly a paid plugin, but now available as open source.
Xcode Fixins - A collection of plugins for minimizing distractions in Xcode, and fixing code completion.
XVim – Adds many Vim key bindings to Xcode.
Mini-Xcode – Allows you to remove the large Xcode IDE toolbar to save screen space providing mini scheme and device selection.
ColorSense – Provides a color picker for adjustments when you highlight a UIColor or NSColor within your code.
BBUncrustifyPlugin -Enables easy use of the Uncrustify code beautification tool.
Lin – Provides a neat interface directly within Xcode to make working with NSLocalizedString easier.
KSImageNamed – Provides auto completion for UIImage imageNamed: within your code by scanning through image files within your workspace.
HOStringSense – Provides a call out bubble in which you can work with an unescaped version of a string.
XcodeColors – Allows you to color code messages in the debugging console so you can make errors stand out and easily separate different messages from differing parts of your code.
AutoresizeMask – Allows you to visualize your autoresizing masks within code.
JDListInstalledPlugins – Allows you to list your installed plugins, and one click remove.
Alcatraz – Provides easy install/removal of Xcode plugins, color schemes, and templates. A newer project so there is not too much in there, but a good idea.
Xcode Plugin Listing – Quality Xcode Plugins
Alcatraz:The package manager for Xcode
CodePilot
2014年10月18日 星期六
2014年10月16日 星期四
atomic vs. nonatomic
nonatomic :
atomic(default) : 我目前有找到幾種解釋,因為還沒整理完,所以先都貼上來。
整理來源:
http://stackoverflow.com/a/10753201/3295047
http://stackoverflow.com/questions/9162926/ios-property-declaration-clarification
http://rypress.com/tutorials/objective-c/properties.html
- does not enforce thread safety on the property, mainly for use when only one thread shall be used throughout a program.
atomic(default) : 我目前有找到幾種解釋,因為還沒整理完,所以先都貼上來。
- enforces thread safety on the property, mainly for use when multiple threads shall be used throughout a program
- More precisely, tomic properties do not ensure thread-safety; rather it ensures atomicity. If thread A and thread B are both writing, atomic ensures that the outcome will be a whole value, meaning either one or the other. Which one is undefined. Writing thread-safe code is not as simple as using atomic properties. See the "Synchronization" section of the Threading Programming Guide
- atomic是Objc使用的一種線程保護技術,基本上來講,是防止在寫未完成的時候被另外一個線程讀取,造成數據錯誤。而這種機制是耗費系統資源的,所以在iPhone這種小型設備上,如果沒有使用多線程間的通訊編程,那麼 nonatomic 是一個非常好的選擇。
- Atomicity has to do with how properties behave in a threaded environment. When you have more than one thread, it’s possible for the setter and the getter to be called at the same time. This means that the getter/setter can be interrupted by another operation, possibly resulting in corrupted data. Atomic properties lock the underlying object to prevent this from happening, guaranteeing that the get or set operation is working with a complete value. However, it’s important to understand that this is only one aspect of thread-safety—using atomic properties does not necessarily mean that your code is thread-safe.
整理來源:
http://stackoverflow.com/a/10753201/3295047
http://stackoverflow.com/questions/9162926/ios-property-declaration-clarification
http://rypress.com/tutorials/objective-c/properties.html
訂閱:
文章 (Atom)




