2015年12月24日 星期四

解決 json_decode 結果為 null 的問題

事情是這樣滴,今天在試著介接新北市 OAuth 時發現收到的 json 字串格式看起來正確,可是 json_decode 出來都是 null ,卡了半天終於找到答案了.....

原因請看這篇

解法請看這篇,我是採用 str_replace

在取得 access_token 以及取得詳細 user 資料(回傳 xml)時先處理掉 BOM 就可以了

PS. 看來可能又是 Windows 闖的禍,看這篇

2015年12月19日 星期六

安裝 MIT App Inventor 2 官方離線版 in Ubuntu

環境:

 Virtualbox + Vagrant

vm 記憶體至少 1G(否則 ant 編譯會失敗)

OS:Ubuntu 14.04 Server x64

MIT App Inventor Public Open Source

GitHub:mit-cml/appinventor-sources

1. 安裝 oracle jdk 7(WEB UPD8
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer
2. 安裝以下套件
  • git
  • ant
  • lib32z1
  • lib32ncurses5 
  • lib32bz2-1.0
  • lib32stdc++6
sudo apt-get install git ant lib32z1 lib32ncurses5 lib32bz2-1.0 lib32stdc++6
3. 下載 Google App Engine SDK for Java ,解壓縮到家目錄下,將資料夾更名為 appengine-java-sdk
!!注意!!
最新版(測試時是 1.9.30)可能有問題,目前確定 1.9.17 版是正常的,可從這裡下載
cd ~
wget http://central.maven.org/maven2/com/google/appengine/appengine-java-sdk/1.9.17/appengine-java-sdk-1.9.17.zip
unzip appengine-java-sdk-1.9.17.zip
mv appengine-java-sdk-1.9.17 appengine-java-sdk
如果沒有安裝 unzip,則先安裝之:
sudo apt-get install unzip 

4. 下載 source code(git clone 或下載 zip),取得其中的 appinventor 資料夾(假設複製到家目錄)
git clone https://github.com/mit-cml/appinventor-sources.git
cp -Rf appinventor-sources/appinventor ~
5. 編譯
cd ~/appinventor
ant clean
ant
6. 啟動 main server
~/appengine-java-sdk/bin/dev_appserver.sh \
--port=8888 --address=0.0.0.0 appengine/build/war/
7. 啟動 build server
cd buildserver
ant RunLocalBuildServer

8. 開啟瀏覽器,http://localhost:8888 or http://YOUR_IP:8888,可以開始使用囉


2015年12月18日 星期五

Ubuntu 下批次變更 EXIF 的工具:exiftool

官網

最近忘了調整相機日期,以至於照片日期時間都不對,於是找到了 exiftool ,有個超棒的時間平移功能(Date/Time Shift Feature),一道指令就可以調整全部的相片。

OS:Ubuntu 15.10 x64

安裝:
sudo apt-get install libimage-exiftool-perl
使用:

先將要修改的相片集中在某個資料夾,例如:fix

執行以下指令

exiftool "-DateTimeOriginal+=5:10:2 10:48:0" DIR

上面的指令是修改 DateTimeOriginal 欄位,增加(+=) 5年10個月2天(5:10:2)10小時48分0秒(10:48:0),DIR 為 fix 資料夾的路徑。

與時間有關的欄位可能不只一個,如:DateTime、DateTimeOriginal、DateTimeDigitized,不同廠牌可能有不同欄位(不確定....)。


GUI:pyExifToolGUI

安裝起來可是操作時沒有動作...... Orz


參考資料:

2015年12月14日 星期一

PHP 產生 PDF 中文問題解決

今天發現在 homestead 下用 phantomjs 或 wkhtmltopdf 產生 PDF 時中文變成方塊,查了一下、發現是 server 端缺少中文字型的關係,試了兩種方法都可以解決。

方法一:

server 端安裝中文字型,如:文泉驛、思源字型

安裝文泉驛

sudo apt-get install xfonts-wqy

參考:



安裝思源字型

ubuntu 15.10 套件庫已有,之前版本可透過 ppa:createsc/3beol 安裝

sudo add-apt-repository ppa:ppa:createsc/3beol
sudo apt-get update
sudo apt-get install fonts-noto-cjk

參考:


方法二:

使用 web font,Google 有提供中文的(Google Fonts 早鳥頁

Noto Sans TC (Chinese Traditional) 還不錯呦,使用方法很簡單,以此為例

匯入 css

@import url(http://fonts.googleapis.com/earlyaccess/notosanstc.css);

在用到的 class or id 樣式加入

font-family: 'Noto Sans TC', sans-serif;

注意事項:

因為要從網路下載字型,中文字型檔通常不小,可能會跑到 timeout ,所以要注意 timeout 時間之設定,或是將匯入之 css 設定加入 server 端的 css,字型檔也下載到 server 端,然後更改 css 中字型檔載入路徑。

參考: