2015年9月15日 星期二

Parse : 建立Cloud code (Mac OS)

Cloud code 顧名思義就是直接在Parse的資料庫執行自訂的code
code必須由javaScript寫成
因為Parse官方的中文說明步驟有點怪,特別做了這個筆記

1. 安裝Parse Command Line Tool

    Mac或Linux只要在終端機下一行指令就能安裝:
    curl -s https://www.parse.com/downloads/cloud_code/installer.sh | sudo /bin/bash
  
  Windows請看這裡

2. 連結Parse帳號

    輸入指令: parse new
    然後會要求你輸入帳號(Email)和密碼,如果是用google或fb帳號登入的,記得到帳戶那邊設定密碼
    接著選則project或新建project
    最後輸入本機目錄名稱(Cloud Code的檔案會儲存在 /Users/使用者名稱/本機目錄名稱)

3. 上傳Cloud Code

    打開你的Cloud code資料夾可以看到裡面有Cloud和Public兩個子資料夾
    Cloud裡面有一個main.js的Hello world示範程式
    用XCode就可以修改它
    用cd指令跳到Cloud code資料夾
    例: cd test
    然後下parse deploy指令就可同步到你的Parse帳號(此時可能會再次要求帳號密碼)

2015年8月25日 星期二

Jackcess 無法修改Row的error

有時在update row的時後會跳出unsupported collating sort order或類似的error
似乎是資料庫用了Jackcess不支援的sort格式導致的
作者也表示不想花太多時間去支援各種sort格式...
所以必須用Access修改資料庫的排序法才行
已下用Access 2003示範,Acess 2007也可以,只是按紐位置不同而已

1. 打開你的資料庫

2. 工具 -> 選項

3. 一般 -> 新的資料庫排序 -> 選擇「一般」-> 確定
 

4. 工具 -> 資料庫公用程式 -> 壓縮及修復資料庫

再次用Jackcess開啟時就可以正常修改了喔

2015年6月4日 星期四

Calendar的陷阱 : 24小時or12小時制?

Java的Calendar是有分12小時制和24小時制的
之前一直以為他預設24小時制一直鬼打牆

Calendar.HOUR指的是12小時制的小時,如:
calendar.set(Calendar.HOUR, 5);

HOUR_OF_DAY才是24小時制的
如果給Calendar.HOUR超過12的數值日期可能會跑掉

正確用法(假設要設晚上8點):

24小時制
calendar.set(Calendar.HOUR_OF_DAY, 20);

12小時制
calendar.set(Calendar.AM_PM, Calendar.PM);
calendar.set(Calendar.HOUR_OF_DAY, 8);

也可以用calendar.get(Calendar.AM_PM)取得現在是上午或下午
calendar.get(Calendar.AM_PM)回傳整數1或0
0表AM 1表PM

2015年5月31日 星期日

在Goole play books上架書籍(二) - Word轉Epub

epub是一種國際標準的電子書格式
Google Play Books只支援pdf和epub兩種格式
推薦使用epub
詳見為基百科http://zh.wikipedia.org/wiki/EPUB

以下說明如何從word檔轉換為epub格式
並在Google Play Books上架
這是轉好的成品: 逍遙遊

1.  下載並安裝電子書神器: calibre http://calibre-ebook.com/download
calibre可以幫你開啟、轉換、整理電子書
免費,而且支援Linux、Mac、Windows
還有內建繁體中文,比較可惜的點是不支援中文直讀

2. 如果calibre打開時是英文,點左上方的Preference -> Look And Feel -> Choose Language
選擇Traditional Chinese 然後點Apply,重開calibre後介面就會變中文了



3. 點左上角的"加入書籍",加入要轉換的書籍

4. 在書籍上點右鍵->轉換書籍->個別轉換
    將輸出格式改為epub,輸入書名、作者等資訊,也可以加入書籍的封面


5.  calibre預設檔案若超過260kb就會自動切割,如果你想要手動切割的話(本次試範為手動)
     在epub輸出頁面,把"分割大於此項的檔案"調大
     調整完後按確定,等後轉換完成


製作目錄: 如果你的word檔本身沒有設定目錄,或者calibre無法精準偵測你的目錄,就要自己手動增加。

6. 在書籍上點右鍵-> Edit book

7. 你的文章儲存在index.html中,如果沒有做第5步驟,可能會被切為多個檔案



8~12步是在手動分章節,不需要的話可以跳過

8. 先新增一個章節
    檔案 -> New file -> 輸入"章節名稱.html"  -> 確定


9. 剪貼內容
    點兩下index.html,把第一章的內容剪下

10. 然後貼到第一章的檔案(貼在<body> </body> 之間)


11.  複製格式
       將 <link href="stylesheet.css" rel="stylesheet" type="text/css"/>
<link href="page_styles.css" rel="stylesheet" type="text/css"/>
       複製到第一章的檔案中(<head>和</head>之間)


12. 重複8~11的步驟,完成所有章節

13. 編輯目錄
      Tools -> 目錄 -> Edit Table of Contents ->建立新的項目




14.  選擇章節檔案並輸入章節名稱 -> 確定

如果沒有分割章節也可以用滑鼠直接指定章節位置
15.以此類推加入所有章節,完成後別忘記儲存!


先別急著上架,在上傳epub檔案時Google會對你的檔案進行格式驗證
不符合規定的epub檔無法上傳
為了節省時間還是先自己檢測吧
用google指定的檢測工具EpubCheck

線上檢測工具 : EPUB Validator http://validator.idpf.org/

檢測軟體 : pagina EPUB-Checker(推薦) http://www.pagina-online.de/produkte/epub-checker/

檢查無誤後就可以上傳囉

2015年5月28日 星期四

Swing: 在JTable用滑鼠右鍵選擇row

JTable預設用滑鼠左鍵選擇row
那如果要用右鍵選擇並執行其他動作呢?

//  BUTTON3代表滑鼠右鍵
if(evt.getButton() == MouseEvent.BUTTON3){
            Point point = evt.getPoint();
            int row = table.rowAtPoint(point);
           
            ListSelectionModel listModel = table.getSelectionModel();
            listModel.setSelectionInterval(row, row);
            //要執行的動作
}

另外,使用ListSelectionModel的clearSelection()可以清除已選擇的row

2015年5月27日 星期三

在phpMyAdmin新增組合鍵(Composite Key)

SQL中可以設定多個欄位組合成一個主鍵,稱為組合鍵(Composite Key)

用SQL與法可以這樣加入:
CONSTRAINT name_of_primary_key PRIMARY KEY (column1, column2)
 
在phpMyAdmin也可以很方便的設定:
 
1.點"索引"

 
2.增加一個新的索引


3.索引類型選PRIMARY
   然後新增欄位,再選擇要設定為組合鍵的欄位





2015年5月15日 星期五

在Android Studio中新增assets資料夾

在專案上點右鍵-> New -> Folder -> Assets Folder


assets資料夾在硬碟中的位置:
  專案\app\src\main\assets