發表文章

Custom Stories with Open Graph

註:當初寫這篇的時候是2014/09/12,那時Facebook sdk還是3.X,現在(2015/06/25)已更新到4.X版,一些方法需要改寫。 舊: 最近在練習寫android app with Facebook SDK, 想用FB的Custom Stories with Open Graph功能, 讓使用者會自動在動態時報(Timeline)上發佈跟這個app的Story, 照著官網Posting using API calls的範例寫, OpenGraphObject book = OpenGraphObject.Factory.createForPost("books.book"); OpenGraphAction readAction = OpenGraphAction.Factory.createForPost("books.reads"); 其中的object("books.book")和action("books.reads")都是FB原本提供的。 想說來用自己定義的story (action是Take ,object是 Bus), 卻不知道createForPost裡的參數分別要填什麼, 填了("take")和("bus")都不行, 找了好久, 注意到books.book(FB提供)和take(自定義)這兩個action的Graph API URL不一樣, 才知道原來要加app的Namespace。 例如這個app的namespace是xx-yy, 那想用自己定義的action和object, 就是要填("xx-yy:take")和("xx-yy:bus")。 更新(2015/06/25): 原本的寫法是OpenGraphObject、OpenGraphAction配合RequestBatch,但到了4.X,這三個類別被替換掉了 而發佈custom stories 也變更簡單 根據官網範例,變成: // Create an object ShareOpenGraphObject object = new ShareOpenGra...

Requires ACCESS_MOCK_LOCATION secure setting

紀錄一下: 在執行有使用到Mock Location的app時,出現  E/AndroidRuntime(889): Caused by: java.lang.SecurityException: Requires ACCESS_MOCK_LOCATION secure setting 雖然AndroidManifest裡已有設定權限了,這問題還是存在。    原來使用實體手機驗証時,需要把開發人員選項裡的 "允許模擬位置"打開才行。

compile vlc on android

https://wiki.videolan.org/AndroidCompile/ 紀錄一下遇到的問題: 1. 第一次進行sh compile.sh 時,出現 Archive:  gradle-2.2.1-all.zip   End-of-central-directory signature not found.  Either this file is not   a zipfile, or it constitutes one disk of a multi-part archive.  In the   latter case the central directory and zipfile comment will be found on   the last disk(s) of this archive. unzip:  cannot find zipfile directory in one of gradle-2.2.1-all.zip or         gradle-2.2.1-all.zip.zip, and cannot find gradle-2.2.1-all.zip.ZIP, period. 在資料夾底下 都會有一個未完整的gradle-2.2.1-all.zip,爬了一下文http://metalkin.tistory.com/82 雖然說是韓文...但大概可以猜到怎麼解 修改 compile.sh at Line 81: wget ${GRADLE_URL} 2>/dev/null || curl -O ${GRADLE_URL} =>wget ${GRADLE_URL} 2>/dev/null || curl -O -L ${GRADLE_URL}

Texmaker XeLaTeX設定

圖片
最近把Texmaker 3.3 更新到Texmaker 4.0.2後,原本在快速編譯下是沒有XeLaTeX這個選項的,不知道從那個版本後,Texmaker終於支援了 這樣就可以用比較喜歡的快捷鍵設定來用XeLaTeX編譯(原本的F5用不到,就可以拿來給XeLaTeX) 不然之前都是在自定命令裡設XeLaTeX編譯,那樣就只能用Alt+Shift+F1~5的組合鍵。不過,有時候文章會修改到cite和ref時,就要加入BibTeX編譯,就變成要XeLaTeX編譯+BibTeX編譯+XeLaTeX編譯+XeLaTeX編譯,有時候圖一多,XeLaTeX編譯一次會花不少的時間,所以這樣的組合編譯還是用自定命令會比較省麻煩一點。 既然Texmaker已支援XeLaTeX,自定命令的命令設定也就比較簡單一點了,可以用命令精靈來設定

"PDF to EPS" and "crop a PDF file"

最近這幾天在忙投稿的事,由於是用LaTex來排版,為了好看,所以圖都是eps格式 ( 其實也是可以用pdf格式的圖,然後用pdfLaTex來編譯,但不知道投期刊可否用這種方式。) 而要產生eps格式的數據圖,以住都是excel產生好後,複製貼到power point上(跳過這步的圖都醜醜的...),再複製貼到visio上另存pdf檔,再用Acrobat去邊,再另存成EPS檔。所以電腦要灌Adobe Acrobat最後才能轉檔,但是Acrobat要錢,不是每台電腦都有這軟體。此外,用Acrobat轉出來的EPS檔莫名的大,包含了一堆訊息,動不動就幾MB,所以最近就在找windows系統有那些小軟體可以用來PDF轉EPS,雖然在miktex下,有pdf2ps這個小工具,但是轉出來的品質我覺得差太多了。最後發現,Xpdf下的pdftops,轉出來的品質滿不錯的,可能顏色會偏一點,但其他的都跟原來沒兩樣 Xpdf的下載連結 http://www.foolabs.com/xpdf/download.html 不過轉出來的圖若需要切白邊,這時有兩種作法: 第一種是以eps檔去切,也就是用GsView開eps檔,再從工具列點選 File = > PS to EPS這個功能來切邊,它可以幫你自動計算白邊,也可以自己手動點,手動點就考驗一點眼力了,因為它不能即時預覽。 第二種則是在PDF檔時,即先切邊。google到一個還不錯用的軟體叫Briss,可以自動計算白邊,也可以手動拉,重點是可即時預覽,滿方便的。 Briss的下載連結 http://sourceforge.net/projects/briss/ 不過說真的,現在也只有在畫元件圖時,才會這樣從PDF轉EPS,數據圖轉來轉去實在是有點費工,更不用說在excel裡,要畫個xy軸是黃金比例的圖有多難拉,而且如果數據一堆,突然老師說某個名詞要改,或是點線風格該改怎樣,要複製來複製去的真的要花很多時間。所以後來都用gnuplot來畫數據圖,要pdf格式還是要eps格式都行。

Improve TheONE ExternalMovementReader

雖然我覺得Java的Scanner滿方便的,但是似乎讀檔效率不是很好。在用ONE simulator時,若是使用ExternalMovement時,大部份的模擬時間都卡在ExternalMovementReader,原因就是ONE Simulator使用Scanner來逐行讀取資料,並且再用Scanner分析每行的location資料,所以大部份的模擬時間都花在讀檔案!!! 所以稍微改寫了ExternalMovementReader,利用BufferedReader讀行,再用字串分割和Double.parseDouble(),果然模擬時間有變快了一點。 完整檔案下載      

BibTex 欄位

最近在整理bib檔,發現以前作的bib檔,欄位都有錯(難怪作出來的ref會被老闆退...) 要修改也是件累人的事,為了給學弟妹參考,想想還是打個心得,不要最後像我改了一個下午還改不完... 欄位會有錯,主要還是bibtex資料都是直接從網站下載下來就貼上去了,尤其是從IEEE下載的bibtex內容,都不太正確(ACM下載的也會有錯) 例如 @INPROCEEDINGS{4215676, author={Wei-Jen Hsu and Spyropoulos, T. and Psounis, K. and Helmy, A.}, booktitle={INFOCOM 2007. 26th IEEE International Conference on Computer Communications. IEEE}, title={Modeling Time-Variant User Mobility in Wireless Mobile Networks}, year={2007}, month={may}, volume={}, number={}, pages={758 -766}, keywords={Ad hoc networks;Communications Society;Delay;Mathematical model;Peer to peer computing;Proposals;Routing protocols;Wireless LAN;Wireless communication;Wireless networks;ad hoc networks;mobile radio;routing protocols;wireless LAN;delay-tolerant network;message delivery;routing protocol;time-variant user mobility modeling;wireless LAN;wireless mobile ad hoc network;}, doi={10.1109/INFCOM.2007.94}, ISSN={0743-166X},} 首先在 author這個欄位裡,應該用全名,不該有縮寫,因為有些期刊會要求完整的姓名,...