2012年3月30日 星期五

多國語言處理..又一個地雷

2012/3/30 下午8:24
Ti SDK: 1.8.2

Titanium的多國語言字串中不能放入特殊符號,例如<br />
例如 <string name="poidetail_share_title">分享給朋友<br />我要換行</string>
這樣的字串只會parse出"分享給朋友"字串
嘗試過\/都沒用
所以用自定的換行符號取代
沒想到又碰到第二個雷 XD
var str= L('poidetail_share_title');
str.replace('br', '<br />');
上面的指令是無效的
查了一下,有人提出類似問題
原因似乎是str不會被判斷為字串(Titanium SDK好像連JS的缺點都implement了...)
解決方法是把str toString()後再處理

阿阿阿阿阿阿阿
我討厭這種不指定型別的作法 orz

附帶說明
Titanium的string.format吃的是%s, 進階作法是$1%s, $2%s

2012年3月29日 星期四

titanium systembutton適用環境


根據http://developer.appcelerator.com/apidoc/mobile/latest/Titanium.UI.Button-object

system button只能用在以下環境

Titanium.UI.iOS.Toolbar. The items array can contain system buttons.

Titanium.UI.iPad.Popover. The leftNavButton and rightNavButton properties can refer to system buttons

Titanium.UI.iPad.SplitWindow. The toolbar array can contain system buttons.

以下環境需要用toolbar放置
Titanium.UI.TextField. The keyboardToolbar array can contain system buttons.

Titanium.UI.TextArea. The keyboardToolbar array can contain system buttons.

Titanium.UI.Window. The leftNavButton and rightNavButton properties can refer to system buttons
and the toolbar array can contain system buttons.

範例
var cancelButton = Ti.UI.createButton({ systemButton: Ti.UI.iPhone.SystemButton.CANCEL });

Headerview造成的錯亂..

2012/3/29 下午4:30
今天使用tableview的header作為資料呈現
塞了一個尺寸200的headerview進去之後
整個排版大混亂…

花了一些時間檢查、討論後
發現在header view中的view好像不能使用left+right作為定位
必須要使用 left/rigght+width, 和top/bottom + height這種方式定位
使用 left:0, right:10之類的定位方法就會造成混亂..
哀…又浪費了3個小時

2012年3月27日 星期二

取得使用者目前鍵盤/輸入法


目前用不上,還是備忘一下
http://stackoverflow.com/questions/1414876/detecting-current-iphone-input-language

https://developer.apple.com/library/mac/#documentation/MacOSX/Conceptual/BPInternational/Articles/ChoosingLocalizations.html


NSUserDefaults* defs = [NSUserDefaults standardUserDefaults];
NSArray* languages = [defs objectForKey:@"AppleLanguages"];
NSString* preferredLang = [languages objectAtIndex:0];

不確定這作法抓到的是什麼就是了..


此外也可以監視使用者切換事件
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(inputModeDidChange:)
name:@"UIKeyboardCurrentInputModeDidChangeNotification"
object:nil];

- (void)inputModeDidChange:(NSNotification*)notification
{
id obj = [notification object];
if ([obj respondsToSelector:@selector(inputModeLastUsedPreference)]) {
id mode = [obj performSelector:@selector(inputModeLastUsedPreference)];
NSLog(@"mode: %@", mode);
}
}

2012年3月26日 星期一

textarea hinttext

2012/3/27 下午12:26
SDK 1.8.2
textarea竟然沒有支援hinttext…
(這個Titanium讓我有點看不懂了…
我一直以為他們是用JS模擬iOS SDK,現在看起來卻像是用自己的SDK為主找iOS中對應的部分套用?
希望SDK2能原生支援這些應該要有的的東西)
因此有人提出使用label作為替代的方法

http://developer.appcelerator.com/question/51081/hinttext-for-textarea


var value = "Whatever is going into the text area";
var hintText = "Notes";

var field = Ti.UI.createTextArea({
value: value,
color: 'blue'
});

var hint = Ti.UI.createLabel({
text: hintText,
color: 'gray',
textAlign: 'left',
left: '3%',
top: '20%',
height: '20%',
width: '100%',
backgroundColor: 'transparent',
touchEnabled: true
});

field.add(hint);

if (field.value.length > 0) {
hint.hide();
}

//*** Hint text appears when TextArea is blank, disappears when text is entered
field.addEventListener('change', function(e) {
if (e.source.value.length > 0) {
hint.hide();
} else {
hint.show();
}
});
//*** Make sure that TextArea gets focus if they tap the hint label
hint.addEventListener('click', function(e) {
field.focus();
});

//同場加映:避免textarea被觸發

  1. touchEnabled: false;

  2. captionText.addEventListener('focus', function(e)

  3. {

  4. //do nothing

  5. e.preventDefault();

  6. alert('test');

  7. });

Titanium navbar設定多重按鈕方式

Titanium navbar設定多重按鈕

Titanium的win基本上只有三個方式放按鈕
rightButton/leftButton, titleContent三種
titleContent的位置無法自訂,基本上和title的位置一樣
昨天測試了結果,left/right都無效,不過可以設定width

rightButton/leftButton基本上只能放單一按鈕
要放多重按鈕需要用到buttonbar,參考如下
https://jira.appcelerator.org/browse/TIMOB-1164

var bb1 = Titanium.UI.createButtonBar({
labels:['+', '-'],//文字方式
backgroundColor:'#336699',
style:Titanium.UI.iPhone.SystemButtonStyle.BAR,
});

win.rightNavButton = bb1;

也可以使用圖片
var bb1 = Titanium.UI.createButtonBar({
                labels : [{
                        image : 'ima/1.png',
                        width : 60
                }, {
                        image : 'ima/2.png',
                        width : 60
                }, {
                        image : 'ima/3.png',
                        width : 60
                }],
                backgroundColor : color_set['linen_red'],
                style : Titanium.UI.iPhone.SystemButtonStyle.BAR,
        });
不過不能直接放按鈕,最大的問題是不能使用系統預設icon..
這問題蠻煩的

Titanium deploy上傳錯誤

備忘一下
這是夥伴碰到的問題
Tintaium產生的專案上傳itunes會報錯誤
這問題好像還蠻常發生的

找到的結果如下
http://developer.appcelerator.com/question/120895/deploy-to-ios-device-error
從結果看來像是SDK和xcode的連結錯誤問題

2012年3月25日 星期日

Titanium: 設定按鈕背景漸層


有些時候就是懶得作圖片 :p

Titanium設定背景漸層的作法很簡單
按鈕的指令是setBackgroundGradient({});
不過沒有移除指令,要移除時設定為()即可

然後因為通常是一次要對多組按鈕設定
所以實務上(我的習慣)會先設定一個var儲存設定
如以下

var grad = {
type : 'linear',
colors : ['#111', '#666'],
startPoint : {
x : 0,
y : 0
},
endPoint : {
x : 0,
y : 40
},
backFillStart : false
};
if(type == 'note') {
btn_tabInfo.enabled = true;
btn_tabNote.enabled = false;
btn_tabImage.enabled = true;
btn_tabInfo.setBackgroundGradient({});
btn_tabNote.setBackgroundGradient(grad);
btn_tabImage.setBackgroundGradient({});
} else {...}

2012年3月23日 星期五

單鍵切換輸入法

今天看到一篇文章,提到了KeyRemap4Macbook
這是一套可以自訂幾乎所有mac按鍵的套件
安裝之後(需要重開機),可以在偏好設定中找到設定

然後,根據
http://www.think-in-g.net/ghawk/blog/2011/11/os-x-mappging-a-single-key-to-select-input-source/comment-page-1/#comment-3500
的作法,就可以達成使用一顆按鈕切換輸入法的功能
不過該網頁的寫法在V7.5中不能用,請換成以下內容

<?xml version="1.0"?>
<root>
<item>
<name>Switch Input Source</name>
<appendix>Use the right Option key to select the next input source</appendix>
<identifier>private.switch_input_source_with_right_option</identifier>
<autogen>--KeyToKey-- KeyCode::OPTION_R, KeyCode::SPACE, ModifierFlag::OPTION_L | ModifierFlag::COMMAND_L</autogen>
</item>
<item>
<name>Switch Input Source</name>
<appendix>Use the right Command key to select the next input source</appendix>
<identifier>private.switch_next_input_source_with_right_command</identifier>
<autogen>--KeyToKey-- KeyCode::COMMAND_R, KeyCode::SPACE, ModifierFlag::OPTION_L | ModifierFlag::COMMAND_L</autogen>
</item>
</root>

2012年3月22日 星期四

BBedit 小技巧蒐集(持續更新

1. 同步設定
BBedit會優先從dropbox目錄取得設定,沒有的話才去application support找/建立新設定
有dropbox的話,可以在dropbox根目錄建立Application Support目錄(必須要在dropbox根目錄!)
然後把application support下的bbedit整個搬過去(還是建議先備份
額外的優點是可以使用dropbox的版本功能在某些情況下回到舊版本
但是!有個缺點,bbedit會把autosave文件放在同一個目錄
所以有可能造成dropbox一直在同步 :p

BBedit 10.1.1 偏好設定介面

這篇說明BBedit 10.1的preference介面內容

PastedGraphic3-2012-03-23-06-26.png
上圖的
a. 開檔案時,(可以的話)把開啟畫面整合到front window(主window的意思?
b. 檔案被改變時自動更新
C. 最近開過的檔案列表個數,下面的子選項是要不要顯示完整路徑
d. 程式啟動/執行時,要做什麼
e. 是否自動開啟上次離開時開啟的檔案
        回復不安全的變動(如果上次離開的狀態和新的狀態不相符時,是否回復之前狀態(不確定..
        包括在server端的檔案

PastedGraphic7-2012-03-23-06-26.png
上圖很花我知道 :p
不過因為設定蠻多的,這樣比較容易說明(絕對不是因為我想少打幾個字!!
toolbar選項:
text optios:一些關於文件的個別設定(bbedit有提供整體設定選項,例如tab距離、顯示寬度、強制斷行等設定,但是也可以針對個別文件單獨設定,這就是那個介面
Document proxy icon:開啟finder到檔案位置

Navigation Bar:
Document navagation: 切換已開啟的文件
marker menu: 選擇marker用。bbedit可以在文件中的某個地方插入marker(類似html的檔案內書籤功能),透過這功能就可以快速切換到指定文件的指定部分,不用找來找去
counterpart button, 助手按鈕,事實上是開啟參考文件
include files menu: 開啟include的檔案
function menu:bbedit會尋找檔案中的function, 可以在這邊快速前往
不過他提供的內容蠻..繁瑣的,而且我覺得把這功能放在右邊做成列表比較好
雖然這樣會讓他看起來像是IDE而不是text editor XD

editing window: 主要編輯視窗的選項
tab stops: tab線,很好用的東西,尤其當tab寬度設定小於4,眼睛容易花的時候 :p
line number: 行數
Gutter: 左邊的箭頭,一個箭頭表示一個功能的起點,也是一個可以收折的起點
page guide at xx characters: 預設頁面寬度
下面是設定超過頁面寬度時,多出來的部分顏色處理法
這設定也是hard wrap(強制斷行)/soft wrap(虛擬斷行)的換行基準
hard wrap會將超過頁面寬度的文字強制換到下一行
soft wrap則是會將超過的部分顯示到下一行,但是不會插入換行符號

Text Status bar: 文件狀態
cursor position: 游標目前的位置(行數、字數)
language: 文件對應的語言
text encoding: 文件編碼
line break type: 文件換行方式(mac, classic mac, window的換行方式是不同的,在此不多做解釋)
document statistics: 統計資料,共有幾行、多少字
最下面的是列表的字型設定(和編輯時的字型設定不同


PastedGraphic8-2012-03-23-06-26.png
從上面開始
顯示輸入提示(text completion)
bbedit的輸入提示不限定要和語言相關
文件中有出現過的詞語都可能在提示中出現

第二段:要不要用字典中的字

第三段:虛擬斷行後,行數怎麼處理,取消的話,顯示行數就會根據hard wrap計算

第四段:虛擬斷行的縮排方式
第一個選項是置左
第二選項和第一行對齊
第三個是置右

最下面是行距設定


PastedGraphic9-2012-03-23-06-26.png
這一面是編輯器預設行為
auto-indent: 自動縮排,根據上一行的縮排位置縮排
balance while typing: 輸入' { [ 時自動帶出對應符號
tupographer's quote: 寫程式的人都用'"引號,但是寫文章時需要的可能是“ ” ‘ ’是這樣的符號,這就稱為tupographer's quote

auto-expnd tabs: 這設定可以把tab換成指定的空白數

show invisible characters: 是否顯示隱藏字元(例如tab, 換行、或其他無法列印出來的字

check spelling as you type: 使用拼字檢查功能
預設字型:編輯器預設字型


PastedGraphic10-2012-03-23-06-26.png
鍵盤設定
use tab key ooxx
使用tab在可輸入欄位中切換,使用shift-tab則是反向切換
home and end keys: 設定這兩者的行為是回到頁面最前/尾或行頭/尾
enter key generates return: 我不太確定這設定,感覺是因應unix shell中按下enter時會執行指令而產生
所以BBEdit提供此設定,讓使用在shell環境中按下enter時不會產生carriage而執行指令

allow tab eky to indent text blocks: 可以用tab對選擇的區塊縮行(不然就要用cmd+[/]方式
enable shift-delete for forward delete: 使用shift + delete執行向右刪除(必勾
when auto-indeing…. : 自動縮排時,移除前面的空白
按下option-¥顯示反斜線或¥(日文鍵盤限定..)
模擬Emacs鍵盤綁定(很邪惡的選項..

PastedGraphic11-2012-03-23-06-26.png
語言設定區,如果對語言有特殊設定,可以在這邊處理
這邊不做解釋,需要這個的人應該已經超出這文章的目標群眾了 :p

PastedGraphic12-2012-03-23-06-26.png
熱鍵設定

PastedGraphic13-2012-03-23-06-26.png
預覽用瀏覽器設定(為什麼MPlayer也會在裡面....)

PastedGraphic14-2012-03-23-06-26.png
列印用選項,包括列印用的字型、是否顯示文件框線、文件表頭、完整位置、行數、gutter
以及最重要的語法配色(使用黑色主題的人請別勾選或換成白色主題,不然很花墨水
下面是時間設定

PastedGraphic15-2012-03-23-06-26.png
語法配色設定
看了一下,bbedit 10以後吃的是bbcolors, v9以前好像是另一種
然後我要順便g一下,以前找這東西時超痛苦
找到了之後還不知道要放在哪邊..
這種東西寫一下是會死嗎!?
其實真的會耶,你自己去找吧 XDDDD
我絕對不會說要放在 /Application Support/BBedit/Color Schemes/ 目錄下的
抓到的bbcolors檔案可能有的會被判讀為執行檔,不用管他,丟下去就對了
另外這部份可能要重開bbedit才會更新,確定動作正確但沒結果的話,重開一次試試看

PastedGraphic16-2012-03-23-06-26.png
文件編碼設定
上面可以勾選自己用得到的編碼格式
中間是預設編碼
下面是當預設編碼無效時,用來測試的編碼順序

終於快完了..
PastedGraphic17-2012-03-23-06-26.png
文件設定
第一部分是換行設定
mac OSx請選擇 Unix
ensure file ends with line break:bbedit會確保文件最後面用換行符號結束
strip trailing whitespace: 勾選時,bbedit會把non-vertical whitespace去除(話說這是啥..

backups部分:備份設定
儲存前是否先備份?
是否保留歷史備份
(備份檔案)是否保留檔案名稱和類型



Titanium 更換配色主題

這答案實在有點難找..
Titanium使用的是™theme這種奇妙的檔名
而且使用者本來就不多…
以下是幾個答案
最佳解答
https://wiki.appcelerator.org/display/tis/User+Themes
其他主題
http://wiki.macromates.com/Themes/UserSubmittedThemes

改變主題的方法
http://developer.appcelerator.com/question/119035/titanium-studio-change-editor-background-color-from-black-to-white

ps:Titanium可以用textmate的配色

順便曬一下我用的配色 :p
PastedGraphic2-2012-03-22-17-17.png

Titanium 更換配色主題

這答案實在有點難找..
Titanium使用的是™theme這種奇妙的檔名
而且使用者本來就不多…
以下是幾個答案
最佳解答
https://wiki.appcelerator.org/display/tis/User+Themes
其他主題
http://wiki.macromates.com/Themes/UserSubmittedThemes

改變主題的方法
http://developer.appcelerator.com/question/119035/titanium-studio-change-editor-background-color-from-black-to-white

ps:Titanium可以用textmate的配色

順便曬一下我用的配色 :p
PastedGraphic2-2012-03-22-17-17.png

BBedit多重視窗同步捲動比對文字作法

先選好檔案,開啟到令一個視窗
不過我還不確定這兩個有什麼差別..
PastedGraphic-2012-03-22-15-05.png
然後選擇同步捲動就可以

PastedGraphic1-2012-03-22-15-05.png

2012年3月21日 星期三

網頁編輯軟體

所謂的網頁編輯軟體其實分很多種
一種是類似套版軟體
這種軟體需要使用者挑選版型,然後就可以自行編輯內容或上傳圖片、影音檔案
不知道為什麼,在win上我很少聽過
可是在mac上不小心就抓到很多(iWeb流殤?)

這種軟體對只是想要弄一個簡單自我介紹的人很好用
可是要修改非常非常的麻煩
當然這不包括改顏色、換字之類的簡單功能
可是比這難一點的移動版面位置就會開始有感覺
如果是要自己新增一些(軟體不提供的)和網頁本身架構有關的功能
光是搞懂他的架構知道怎麼放東西進去就會搞死人..

另一種極端是html editor
雖然說是說HTML,實際上只是個文件編輯器(大概就是記事本那種fu…
不過這種editor大致上都會有語法偵測、變色、提示功能
此外也常會組合一些方便的管理功能,例如ftp上傳管理、預覽內容之類

以上兩者代表是兩種極端
不過還是有一些中間層的軟體
這些處於中間的軟體,主要是使用模版方式建立網站
大致流程是挑選一個基本版面(也可以是空白版面
然後選擇套件並安裝
不過就某種程度而言,這作法比單純的套版軟體還令我不習慣…


身為一個假博的設計師
我使用的主要是HTML editor
目前主要用的是coda, 最近有想換espresso
coda不錯用,不過他有一個非常令我不爽的缺陷
不能摺疊區塊
當程式碼很長時,要找程式非常痛苦
espresso v1不好用,不過很多人對v2給予優良的評價
晚點有錢又有相關工作時,大概會考慮換一下試試看
目前的工作流程其實是使用coda+bbedit(話說bbedit幾乎沒有中文的研究文章..

我會使用coda建立基本版面、預覽
然後使用bbdit進行後續程式編輯動作
其實bbedit應該還有更強的功能,只是目前還沒全部研究出來..

livereload 2.1

2012/3/22

很多人都有在介紹的一個軟體
這幾天0.99特價中就買了
livereload可以偵測特定資料夾的檔案是否變更
然後自動更新瀏覽器內容
偵測對象不只是.php/html之類檔案,還包括jpg, css/js檔案
此外還能自動compile coffeescript之類軟體
聽起來就是一整個很威 XD

之後有網頁工作時應該可以派上用場

itsy 2.1.9

2012/3/22
http://itunes.apple.com/us/app/itsy/id405784662?mt=12


又是一個twitter工具
畫面非常簡潔,如果是重度使用者的話,可以把它擺在螢幕任何地方
而且有提供tray icon
同時也有提供notification功能告知新的twitter
這功能是官方不具備的
不過我對twitter實在沒有那麼有愛..
如果是plurk的話可能還比較有興趣(晚點來寫一個好了? :p
設計概念不錯,介面配色不錯(和mac整體風格很搭
話說mav的白灰漸層實在不錯..

2012年3月19日 星期一

Titanium 2.0/1.8.2事項


2.0會整合cocoafish, 這表示可以使用簡單的API從雲端取得資料
此外,還包括:
調整電話簿/聯絡人(Address framework?)的ui問題
提供更彈性的定位功能
增進tableview效能
對module提供比較好的定義方式?(在那之前先把module的使用方式優化一下吧..)

1.8.2




We are working in parallel on our next feature release, 2.0. Highlights of the SDK 2.0 feature set include:
  • Integration with CocoaFish to cloud-enable Titanium applications.
  • Composite layouts to address UI parity issues.
  • More flexible geolocation functionality.
  • Improved TableView performance.
  • Well-defined module API for module developers.
We’ve gotten a little behind processing community pull requests but we are working on them now, so keep them coming.
Enhancements in 1.8.2 include:
  • Android V8 – Application Java Script source code protection
  • Android V8 – Better memory management
  • iOS – API to load WebView content from string with baseURL
  • MobileWeb – Google Closure compiler integration to minify code
  • Documentation – Improved API documentation with new code examples
Read the Release Notes for additional details on all improvements available in this release.




Titanium 2.0/1.8.2事項


2.0會整合cocoafish, 這表示可以使用簡單的API從雲端取得資料
此外,還包括:
調整電話簿/聯絡人(Address framework?)的ui問題
提供更彈性的定位功能
增進tableview效能
對module提供比較好的定義方式?(在那之前先把module的使用方式優化一下吧..)

1.8.2




We are working in parallel on our next feature release, 2.0. Highlights of the SDK 2.0 feature set include:
  • Integration with CocoaFish to cloud-enable Titanium applications.
  • Composite layouts to address UI parity issues.
  • More flexible geolocation functionality.
  • Improved TableView performance.
  • Well-defined module API for module developers.
We’ve gotten a little behind processing community pull requests but we are working on them now, so keep them coming.
Enhancements in 1.8.2 include:
  • Android V8 – Application Java Script source code protection
  • Android V8 – Better memory management
  • iOS – API to load WebView content from string with baseURL
  • MobileWeb – Google Closure compiler integration to minify code
  • Documentation – Improved API documentation with new code examples
Read the Release Notes for additional details on all improvements available in this release.




Titanium 2.0/1.8.2事項


2.0會整合cocoafish, 這表示可以使用簡單的API從雲端取得資料
此外,還包括:
調整電話簿/聯絡人(Address framework?)的ui問題
提供更彈性的定位功能
增進tableview效能
對module提供比較好的定義方式?(在那之前先把module的使用方式優化一下吧..)

1.8.2




We are working in parallel on our next feature release, 2.0. Highlights of the SDK 2.0 feature set include:
  • Integration with CocoaFish to cloud-enable Titanium applications.
  • Composite layouts to address UI parity issues.
  • More flexible geolocation functionality.
  • Improved TableView performance.
  • Well-defined module API for module developers.
We’ve gotten a little behind processing community pull requests but we are working on them now, so keep them coming.
Enhancements in 1.8.2 include:
  • Android V8 – Application Java Script source code protection
  • Android V8 – Better memory management
  • iOS – API to load WebView content from string with baseURL
  • MobileWeb – Google Closure compiler integration to minify code
  • Documentation – Improved API documentation with new code examples
Read the Release Notes for additional details on all improvements available in this release.




Titanium 1.8和xcode4.3的處理

2012/3/20 上午4:14

by http://developer.appcelerator.com/blog/2012/03/titanium-and-xcode-4-3-revisited.html
對Xcode 4.3的支援要到Titanium 2.0(預計2012/4)以後才會發生
這段期間有兩種作法,
一個是降到xcode4.2
如果一定要4.3, 方法會比較麻煩一點
How to use Xcode 4.3 with Titanium 1.8 
        1.        Upgrade Mac OSX to 10.7.3 from “ -> Software Update”
        2.        Download and install Xcode 4.3.1
        3.        Run Xcode 4.3.1 and install any necessary components if prompted. It is not required to delete prior Xcode versions, but you can if you want to.
        4.        Install Xcode 4.3.1 command line tools from “Xcode -> Preferences -> Downloads”
        5.        sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
        6.        Download and extract ios-sim-xcode4.3.tar.gz
        7.        Copy the new ios-sim executable to any Titanium SDK paths you are using. For example, if you are testing with Titanium 1.8.1 and 1.8.2, you would do the following:
                cp /path/to/ios-sim ~/Library/Application\ Support/Titanium/mobilesdk/osx/1.8.1/iphone/
                cp /path/to/ios-sim ~/Library/Application\ Support/Titanium/mobilesdk/osx/1.8.2/iphone/

8. Create a new project, or clean an existing one, and build for the iPhone/iPad simulator and you’ll have your Titanium app running against Xcode 4.3 and iOS 5.1!

第六步驟是下載
第七步驟是將下載檔案放到Titanium SDK位置
第八步驟是清除/新建專案


2012年3月14日 星期三

annotation.image 碰到一個奇怪的問題..

程式中有一個根據不同情況設定annotaion.image的方法
在sdk 1.8.1中,運作是正常的
但是在1.8.2中,這個方法卻無法正常設定..
而且運作的很random?
還在尋找原因中

2012年3月13日 星期二

mazaika free

很有趣的東西
輸入照片,選定範圍後
mazaika會用一些固定的圖樣(花、畫作)之類做成馬賽克版
這想法似乎比較像是一些..藝術家創作
目前似乎不能使用指定的來源(例如自己的照片)填充
如果可以的話,就很有趣了 XD

原始版
PastedGraphic7-2012-03-14-14-07.png

填充後
PastedGraphic9-2012-03-14-14-07.png

加強版(這個比較看得出來
PastedGraphic10-2012-03-14-14-07.png

facebutler

很有趣的東西
可以用來測試、查詢fql結果
不過使用時必須要先準備好facebook上的app id
然後使用帳號登入做測試
以下是簡單的測試結果
不是很聰明的東西,不過效果不錯,facebook開發者應該會喜歡這傢伙 XD
PastedGraphic3-2012-03-14-13-54.png

PINGO


一個偵測區域網路內所提供服務的app
速度蠻快的,下載免費,移除廣告則要付錢
偵測的類型頗多,不過..好像沒啥用 :p

PastedGraphic2-2012-03-14-13-41.png

snagit 視窗畫面擷取軟體

snag it是少數幾套我從window時代用到現在的軟體
雖然主要原因是他有提供mac版本.. :p
不過他的擷圖功能強大也是無庸置疑的
最簡單的一個體現是使用snagit on mac v1時
擷圖時,snagit有提供放大鏡功能讓使用者準確定位到單一像素

除此之外,我最喜歡的一個特色是snagit editor有提供如下圖所示的朦朧功能
PastedGraphic-2012-03-14-07-00.png
這功能的重要性不只是隱藏資訊
還可以用來凸顯重點
例如下圖,背景資訊很多的情況下怎麼清楚的標出重點呢?把背景全部朦朧化就好了 XD
PastedGraphic1-2012-03-14-07-00.png

不過snagit的重要特色也就這兩個
其他的對話框功能在許多擷取軟體上都有類似的

可是他不是沒有缺點的
最大的缺點是沒有成熟的管理功能
想像一下,你是qa,你每天都要抓100張圖
過了兩天,有人跟你說前幾天的圖有點問題
怎麼找出那張圖?
snagit有維護一個自己的抓圖文件,但是沒有資料夾功能、沒有搜尋功能
只能自己拉回去找
更別說他好像有一個容量限制、升級後資料庫重來之類等問題,這些問題我都快覺得是bug了
此外,無法批次匯出(只能一次一張慢慢存或貼到其他程式)也是一個大問題


如果只是要抓圖,其實有一些軟體可以做得和snagit一樣好
不過他們都沒有朦朧功能、不錯且夠用的對話框功能
而且目前為止他們的管理功能其實和snagit一樣甚至更爛
所以對於重度使用者而言,snagit算是目前最好的選擇之一
不過這優勢..也許不會保持太久?

如果你有用過更好的擷圖軟體,歡迎跟我說

另外,我有用過snagit on mac 2試用版
v2會當機,大概2小時一次,不確定原因
回復成v1時,會把資料全部清掉,要升級試用版的話請小心
我真的不覺得V2能算是V2, 功能其實沒有大改變
除非之後錢太多,不然應該不會升級到V2, 看看v3能不能讓我心動吧

2012年3月12日 星期一

appmenu


第一次使用時,會需要等待一些時間
我猜是在整理資料
等待完成後,appmenu會出現在tray中
PastedGraphic12-2012-03-13-02-51.png

裡面的連結當然是可以自己修改的
Application是所有的應用程式(設定中可以修改是否使用資料夾和是否顯示非 .app 的檔案)
Dock就是dock上的程式
預設出現的app算是最喜愛的程式之類
PastedGraphic13-2012-03-13-02-51.png


簡單的設定畫面
PastedGraphic14-2012-03-13-02-51.png

感想
嗯,算是不錯的想法,可是功能有點簡陋
只是這樣的功能的話,一個比較大的dock就可以解決
除非是經常需要開啟dock上沒有的app才有需要
不過針對這種使用者,使用finder輸入app name會更快速吧

整個來說,大概只有喜歡隱藏dock的使用者會需要使用

janetter 測試


登入畫面

PastedGraphic1-2012-03-13-02-10.png

使用twitter API,有信任感

PastedGraphic2-2012-03-13-02-10.png

登入後的畫面,介紹了他們自己的theme功能
不過字有一點小
PastedGraphic3-2012-03-13-02-10.png

將一些預設、主要的特色放在初次登入畫面中
這樣可以讓使用者快速了解
同時提供了預設選項,避免使用者無從選擇
不過解釋的不是非常清楚

PastedGraphic4-2012-03-13-02-10.png


登入後有特效音,在音量最大的情況下也不會太大聲
不過進去後畫面是空白?
可能和預設的選項有關係,但是應該要提供一些小提示
PastedGraphic5-2012-03-13-02-10.png


因為主要畫面中沒有任何提示,所以進入了設定頁面看看..
PastedGraphic6-2012-03-13-02-10.png

設定頁沒有任何問題,可是依然沒結果
關掉程式重開後才正常..
PastedGraphic7-2012-03-13-02-10.png



畫面上方左邊區域的按鈕按下會出現並focus到對應的欄位
不過第二次點擊時沒有自動隱藏功能(好像有點難設計..)
拉動視窗尺寸時,最旁邊的區塊會有空白、閃爍情況


PastedGraphic8-2012-03-13-02-10.png

滑鼠移動到區塊上方會出現小功能提示,效果不錯,不過沒有提示的情況,有多少人會知道呢?(思考
PastedGraphic9-2012-03-13-02-10.png

twitter的功能選擇,選擇很多
PastedGraphic11-2012-03-13-02-10.png


profile畫面,看起來功能很強大..簡直可以查出這個twitter的祖宗十八代了 XD
PastedGraphic10-2012-03-13-02-10.png

其實我twitter使用的不夠狂熱
很多功能沒有測試到
就我看來,janetter是一個很geek、功能很強大的twitter app
如果只是想要一般功能的人,使用一般的twitter應該就夠了


bencoding.sms模組心得

今天發現使用bencoding.sms模組會發生app down問題
不論取消、送出都會
搜尋了一下,發現幾乎沒有人提到這問題
所以把方向修改為程式寫法問題

研究了一下example
範例中都是在外部建立物件
而我是在按鈕事件中產生物件並建立動作
思考了一下,發現兩種寫法會有生命週期問題
所以就把相關部分修改為範例中寫法
目前測試了幾次都正常

其實一開始我是用這寫法,後來才改成事件內產生物件方式處理
因為這樣程式比較美觀又符合lazy-loading的省資源作法
不過看來是有點做過頭了(汗

2012年3月11日 星期日

網路時代的資訊整理-我流整理術

資料這麼多又容易看過就忘,怎麼辦?
大部分人最先想到的應該是瀏覽器書籤
不過那是一個很無用的作法
主要原因是瀏覽器書籤只能記錄名稱
大概有1/3只會記錄網站名稱,剩下2/3會留下標題
雖然可以用資料夾分類、有的還可以上tag/標籤和註解
不過大多數情況未必會使用

想像一下,你一個月前看到一篇文章提到了一家餐廳義大利餐廳不錯吃
而且你放到了書籤中
一個月後,你打開資料夾看到了上百個書籤,要花多久找得到?
還是就直接googl 台北市 義大利餐廳 好吃?

會發生這種情況,主要是因為書籤沒有辦法針對內文做索引
所以有些筆記軟體會提供網頁檔案功能(devonthink, yojimbo之類)
缺點就是要花硬碟空間(還好技術類文章通常不大)
在這一點上,今天找到了一個解法 google bookmark
google bookmark有提供一個js語法可以讓使用者快速加入書籤
不過記得先把搜尋瀏覽記錄設定關掉
不然就無法區別出要搜尋的資料了
上一篇我有提過使用網頁存檔代管網站,他們的效果基本上和google bookmark差不多,只是比較..完整、保存期久一點
現在也不知道要不要繼續使用了 XD

不過那並不是完整的作法
以我而言,目前採取了一下作法
  1. 區別此網頁內容的重要性、保存性
        如果是有重要參考價值(如程式語法、範例)的文章,就archive起來
        如果看過、了解就可以忘記的,就不管他或放google bookmark
如果是要收圖,就抓下來然後自己分類(iphone, 資料夾都可,不過資料夾少了一個tag多少不夠完美)
flash/影片的話,就使用google bookmark,雖然影片未必日後還會存在,不過有個書籤名字和google記錄,有很大機會找回來
當然,影片非常重要的話,自己找個方法抓下來會比較保險

除此之外,心得、筆記要用個整合軟體收集
如果是個人心情、隱私之類的,再找一套有加密功能的軟體
密碼可以使用密碼管理軟體統一收集會比較好

再修正一下之前的作法
重要、有參考價值、三不五時看一下有益的,放本地端
從文章看出網站不錯,之後會想回來看其他文章的,放瀏覽器書籤
文章不錯,有可能以後需要查詢、尋找但又不想重新回到google中找的話,放google bookmark或類似網站
文章本身有一些東西可以整合到特定的知識庫(例如程式碼),開個自己的知識庫儲存

以上作法並不互斥

2012年3月5日 星期一

iTunes store app上架雜談

經過一陣子的研發
app終於要上架了
結果過程中又碰到了一些問題

先從icon開始說
icon分成3+1種
Default.png
這是放在iTunes store上給使用者看的,512*512

icon.png icon@2x.png
這是放在iOS桌面的icon
對應高低解析度所以需要兩種

icon_small.png, icon_small@2x.png
這是給iOS管理頁面用的icon
如果app有用到定位或提供plist給使用者儲存設定時會需要使用
同樣有高低解析度

icon_small50.png
這是給iPad spotlight用的icon
只有在ipad app,同時有使用到spotlight功能時才需要

在畫圖時,除非畫面夠單純,不然建議這些圖要分開繪製
最主要原因是使用512/512縮小到29/29時,像素根本看不清


除了icon之外
app上架時還需要一些額外資訊(這些被審查者稱為metadata
這次碰到了兩個問題
descriptio placeholder問題:
        寫app時,會發現一些文字輸入欄位可以放一些預設資訊,例如"請輸入搜尋文字"
        那些資訊就是placeholder
        第一次上架時,因為還沒想好整體描述,只是想先測試上架程序,所以描述那邊只簡單打了幾個字
        然後就被退了 XDDD
support url問題:
        我們有使用一個fb粉絲團作為使用者回報區
        不過設定時基於某些考量,只允許台灣使用者觀看
        這表示身在美國的審查者看不到..然後就變成退件原因了 :p

此外還有一些延伸問題
support url可能不能只是一個可以用的網址,加入一些圖文說明會更好

除此之外,目前我們沒有碰到其他問題
有碰到就再說吧