2015年6月1日 星期一

[Android Studio]連Hello World!這種入門程式,都花了我15分鐘。

心血來潮。聽人家說Android Studio非常好用,一時耳根軟就把它下載回來試試。

下列是我的環境清單
===========================
OS: OS X 10.10.3
Android Studio: 1.2.1.1
JDK Version: 1.8.0_45
===========================

照著教學,下載安裝完全不是問題!
下載完當然不會放在那,先來個入門練手
所有的程式語言第一個程式 --- Hello World!

但...一開始就發生一個錯誤

"AppCompat does not support the current theme features."

沒關係,凡事不決問Google大神!

3分鐘過後...

有人說是Android Studio本身的bug,但新的版本已經有修正。(我就是新版,next~)
有人說去res/values/styles.xml 裡面修正。 (補上紅字部份)
<resources>
    <!-- Base application theme. -->    <style name="AppTheme"        parent="Base.Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->    </style>
</resources>


上面錯誤不見了!但...案情並不單純。出現第二個錯誤

"Error:Execution failed for task ':app:compileDebugAidl'.
> aidl is missing"

再次問Google大神... ... ... ... ... ...

原文在此

Build tools Version有誤,預設是用23.0.0 rc1,但修改為22.0.1就一切正常了! (喔耶,忘了說,上面紅字部份可以不用改 XD...)

那該怎麼修正呢?
app按右鍵,選擇"Open Module Settings"


接著在Build tool version下拉選單中,選擇22.0.1即可。


以上就是不專業解答。





2015年4月13日 星期一

引用來源:五種開源授權規範的比較 

以下是該文章內容,轉載+備份。

--------------------------------------------------------------------------------------------------------------------------


當Adobe、Microsoft、Sun等一系列巨頭開始表現出對"開源"的青睞時,"開源"的時代即將到來!

現今存在的開源協議很多,而經過Open Source Initiative組織通過批准的開源協議目前有58種(http://www.opensource.org/licenses/alphabetical)。我們在常見的開源協議如BSD, GPL, LGPL,MIT等都是OSI批准的協議。如果要開源自己的代碼,最好也是選擇這些被批准的開源協議。

這裡我們來看四種最常用的開源協議及它們的適用範圍,供那些準備開源或者使用開源產品的開發人員/廠家參考。

BSD開源協議(ORIGINAL BSD LICENSE、FREEBSD LICENSE、ORIGINAL BSD LICENSE)


BSD開源協議是一個給於使用者很大自由的協議。基本上使用者可以"為所欲為",可以自由的使用,修改源代碼,也可以將修改後的代碼作為開源或者專有軟件再發佈。

但"為所欲為"的前提當你發佈使用了BSD協議的代碼,或則以BSD協議代碼為基礎做二次開發自己的產品時,需要滿足三個條件:

如果再發佈的產品中包含源代碼,則在源代碼中必須帶有原來代碼中的BSD協議。
如果再發佈的只是二進制類庫/軟件,則需要在類庫/軟件的文檔和版權聲明中包含原來代碼中的BSD協議。
不可以用開源代碼的作者/機構名字和原來產品的名字做市場推廣。
BSD 代碼鼓勵代碼共享,但需要尊重代碼作者的著作權。BSD由於允許使用者修改和重新發佈代碼,也允許使用或在BSD代碼上開發商業軟件發佈和銷售,因此是對 商業集成很友好的協議。而很多的公司企業在選用開源產品的時候都首選BSD協議,因為可以完全控制這些第三方的代碼,在必要的時候可以修改或者二次開發。

APACHE LICENCE 2.0(APACHE LICENSE, VERSION 2.0、APACHE LICENSE, VERSION 1.1、APACHE LICENSE, VERSION 1.0)


Apache Licence是著名的非盈利開源組織Apache採用的協議。該協議和BSD類似,同樣鼓勵代碼共享和尊重原作者的著作權,同樣允許代碼修改,再發佈(作為開源或商業軟件)。需要滿足的條件也和BSD類似:

需要給代碼的用戶一份Apache Licence
如果你修改了代碼,需要再被修改的文件中說明。
在延伸的代碼中(修改和有源代碼衍生的代碼中)需要帶有原來代碼中的協議,商標,專利聲明和其他原來作者規定需要包含的說明。
如果再發佈的產品中包含一個Notice文件,則在Notice文件中需要帶有Apache Licence。你可以在Notice中增加自己的許可,但不可以表現為對Apache Licence構成更改。
Apache Licence也是對商業應用友好的許可。使用者也可以在需要的時候修改代碼來滿足需要並作為開源或商業產品發佈/銷售。

GPL(GNU GENERAL PUBLIC LICENSE)


我們很熟悉的Linux就是採用了GPL。GPL協議和BSD, Apache Licence等鼓勵代碼重用的許可很不一樣。GPL的出發點是代碼的開源/免費使用和引用/修改/衍生代碼的開源/免費使用,但不允許修改後和衍生的代 碼做為閉源的商業軟件發佈和銷售。這也就是為什麼我們能用免費的各種linux,包括商業公司的linux和linux上各種各樣的由個人,組織,以及商 業軟件公司開發的免費軟件了。

GPL協議的主要內容是只要在一個軟件中使用("使用"指類庫引用,修改後的代碼或者衍生代碼)GPL 協議的產品,則該軟件產品必須也採用GPL協議,既必須也是開源和免費。這就是所謂的"傳染性"。GPL協議的產品作為一個單獨的產品使用沒有任何問題, 還可以享受免費的優勢。

由於GPL嚴格要求使用了GPL類庫的軟件產品必須使用GPL協議,對於使用GPL協議的開源代碼,商業軟件或者對代碼有保密要求的部門就不適合集成/採用作為類庫和二次開發的基礎。

其它細節如再發佈的時候需要伴隨GPL協議等和BSD/Apache等類似。

LGPL(GNU LESSER GENERAL PUBLIC LICENSE)


LGPL是GPL的一個為主要為類庫使用設計的開源協議。和GPL要求任何使用/修改/衍生之GPL類庫的的軟件必須採用GPL協議不同。LGPL允許商 業軟件通過類庫引用(link)方式使用LGPL類庫而不需要開源商業軟件的代碼。這使得採用LGPL協議的開源代碼可以被商業軟件作為類庫引用並發布和 銷售。

但是如果修改LGPL協議的代碼或者衍生,則所有修改的代碼,涉及修改部分的額外代碼和衍生的代碼都必須採用LGPL協議。因此LGPL協議的開源代碼很 適合作為第三方類庫被商業軟件引用,但不適合希望以LGPL協議代碼為基礎,通過修改和衍生的方式做二次開發的商業軟件採用。

GPL/LGPL都保障原作者的知識產權,避免有人利用開源代碼複製並開發類似的產品

MIT(MIT)


MIT是和BSD一樣寬範的許可協議,作者只想保留版權,而無任何其他了限制.也就是說,你必須在你的發行版裡包含原許可協議的聲明,無論你是以二進制發佈的還是以源代碼發佈的.

2013年11月14日 星期四

.gitignore file for Xcode 5 Projects (Using CocoaPods)

以下是自我的記錄
有許多資料仍在確認其用途
但先記錄起來,如果有興趣也歡迎討論。

----------------------------------------------------------------------------------------------------

# github上有專門在維護.gitignore的設定 (Objective-c.gitignore)
# OS X generated - 主要記錄使用者對於每個資料夾的不同設定 (圖示大小、位置、其它屬性)
.DS_Store

# Xcode
# Exclude the build directory
build/

# Exclude user-specific Xcode 5 files
*.pbxuser
!default.pbxuser

*.mode1v3
!default.mode1v3

*.mode2v3
!default.mode2v3

*.perspectivev3
!default.perspectivev3

# 此為資料夾型態,不同的使用者都會產生 (e.g.   your_name.xcuserdatad)
xcuserdata

# github上面的gitignore,已經將xcworkspace從gitignore中移除。
# 是否最好移除,尚待查看

原因在此
*.xcworkspace
!default.xcworkspace

# The .xccheckout file contains VCS metadata, and should therefore not be checked into the VCS.
*.xccheckout

profile
*.moved-aside
DerivedData
*.hmap
*.xccheckout

# CocoaPods
# 但Pods官方有提供,建議Podfile.lock & Manifest.lock應該要被留住
# 網路上有不同的考量。
# 1. 已經使用過pod install,產生的資料不應該再變動,以維持一致性
# 2. 應該要移除。每次專案的產生都應該用pod install來維護。Pods

2013年11月7日 星期四

Linux Mint上安裝及啟動嘸蝦米輸入法

安裝完Linux Mint 15之後,發現沒有中文輸入法,還滿麻煩的
上網查了一下,總結如下:

#1. 安裝 hime 輸入法
       sudo apt-get install hime
#2. 設定 hime 為預設輸入法
       im-switch -s hime
       (注意:若沒安裝im-switch,需要先安裝它 sudo apt-get install im-switch)
#3. 搜尋及下載 嘸蝦米表格檔 (noseeing.gtab)
       Google it!!!
#4. 啟動 hime 輸入法 (登出再登入)
       選單->登出;再次登入
#5. 將表格檔置入 hime 中 
       開啟檔案管理資料夾(綠色資料夾),按右鍵->Show Hidden Files (顯示隱藏檔)
       解壓縮剛剛下載的 noseeing.gtab 檔案(tar.gz之類)
       將 noseeing.gtab 置入 /home/your_user_name/.config/hime 資料夾下。
#6. 在右下方的工具列上,會看到 hime 的圖示,設定嘸蝦米輸入法
       (在圖示上)按右鍵->設定/工具->內定輸入法&開啟/關閉
       設定你常用的輸入法,沒用到的請把打勾取消。
       按「確定」之後,再按「結束」。
#7. 恭禧你,可以開始試用了