2016年11月24日 星期四

timezone info 時區問題

在 buildroot 中,啟動了 timezone info 後,在 /etc/TZ 會出現這個檔案,我們可以編輯這個檔案來改變板子上的時區。另外一種方式好像是利用環境變數 TZ 來變更,但兩者之間誰先誰後,還有待研究。


台灣應該為 UTC-8,但實際上我們生活中,台北時間應該為標準時間+8,看起來 Linux 好像和我們的認知是相反的。

2016年10月12日 星期三

scanf * 星號小技巧

今天看到一個還蠻特別的用法
%*d
%*s
奇怪,為什麼中間可以加一個星星呢?
原來是可以用來做 scanf sscanf 時,忽略掉這個 token,cplusplus 提供有說明解釋。

http://stackoverflow.com/questions/2155518/what-is-scanfs-and-scanfd-format-identifiers

http://www.cplusplus.com/reference/cstdio/scanf/

2016年9月21日 星期三

can't resolve symbol XXX

解決辦法:

- 確認 so 和 libc 等等是有配對的

- 確認 LD_LIBRARY_PATH 是否有指定到對的 so PATH

- 這是我的成功解決方是,因為我是使用 binary 去呼叫包裝過後的 so,而問題出現在 so,因此我在 so 裡面的多個 .c 檔編譯時,加上 -L -l 等等參數,之後就成功了,原來的方式是只有 binary 加上 linker 的參數而已。

2016年6月7日 星期二

LuCI 編碼錯誤問題


在這篇網誌中,要小心 htm 的部分不可以使用 DOS 字元,需要使用 UNIX 字元才行,否則可能會出現 unfinished string near 的錯誤訊息。

在 Source Insight 直接編輯時,如果設定不對會變成 DOS 字元,此時可用 notepad++ 進行格式上的轉換。

2016年5月23日 星期一

Hidden ActionBar (Status Bar) on Android.

這幾天一直搞不定 status bar 的問題,網路上搜尋到的資料大多都是會造成 actionbar crash,後來尋找到這一篇 stackoverflow 文章,

http://stackoverflow.com/questions/28144657/android-error-attempt-to-invoke-virtual-method-void-android-app-actionbar-on

如果你有機會使用繼承到 AppCompatActivity Class,可能需要將 getAction() 換成 getSupportActionBar()。

否則可能出現 actionbar null 的問題

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.ActionBar.hide()' on a null object reference

另外要隱藏 ActionBar 可以從 https://developer.android.com/training/system-ui/status.html 搭配所對應的 Activity Class 過濾出要使用 getAction() or getSupportActionBar()。

2016年5月22日 星期日

Android 出現 net::ERR_CACHE_MISS 問題

在開發 Android 的過程中,如果有遇到 net::ERR_CACHE_MISS 的訊息,特別是用到 chrome (webview) 時出現,有可能是在 Permission 沒有進行 Internet 的權限宣告。

此時到 AndroidManifest.xml 進行宣告即可。


2016年4月21日 星期四

YouCompleteMe(YCM) Error

前陣子在使用 YCM,他算是 vim 可以擴充的一個套件,但在安裝 Plugin 之後,卻出現了下列的訊息:

2016年4月18日 星期一

python 2.7.11 使用 matplotlib 出現了不相容的問題

在使用 python 2.7.11 搭配 matplotlib 套件時,出現了下列的錯誤訊息

Homebrew on MAC El Capitan issue



在 El Capitan 版本使用 homebrew 時出現了下面錯誤的訊息



解法步驟如下:
  1. cd /usr/local
  2. git reset --hard FETCH_HEAD
  3. git checkout Library
  4. sudo brew update
之後應該就能夠正常使用了


2016年3月29日 星期二

NAT 種類

最近在研究關於 NAT 的內容,所以分享一下 NAT 好了。

NAT 大家比較熟悉的應該是用在家用分享器上,在一個 WAN IP 可以 Mapping 到多個 LAN 裝置,其中 Mapping 的方式有很多種,例如我們舉幾個維基裡所提到的種類,這也是大多數的人會探討的幾個。

  • Full cone NAT 
  • Address-Restricted cone NAT 
  • Port-Restricted cone NAT 
  • Symmetric NAT

2016年3月26日 星期六

ASUS 無法安裝 AI Suite 3 的問題

前陣子剛組電腦,選擇的是 A88XM-E 這塊板子,正好是 ASUS華碩 的,相信用過華碩的朋友應該都知道 AI Suite,我之前上一塊主機板是 P5QL-E,也是都會搭配這套軟體,不過可能版本差很多就是了。

如果你單純從 ASUS 下載公用程式來安裝,有可能會發生像我這樣子的情形,解壓縮後,點 asussetup 沒有反應,要不然就是不會正確的被安裝起來,後來在網路上發現到解法。

在下載完壓縮檔之後,需要在壓縮檔 按 右鍵,選擇內容,按 "解除封鎖"


之後解壓縮後,進行安裝,應該就能夠正確安裝完成了。

2016年2月26日 星期五

weburl match module porting to Linux Kernel



在某次需要之下,我們要針對 URL 進行過濾,但使用了 iptables 發現,iptables 並無法進行 URL 的過濾,當你在輸入 URL 時,iptables 會進行 DNS 的查詢,進而轉換成所對應的 IP Address,然而,一個 DNS 所能對應的將會是多個 IP Address,而且可能是變動的,這可能導致你每次輸入的 DNS,再經由 iptables 轉換後進到 rules,會是錯誤的 IP Address。

在網路上搜尋所對應的資訊,可以利用 Kernel 中所提供的許多種 match module 來進行過濾,但老實說各有利弊,不同的 module 有他自己本身的副作用 (例如可能導致特定的網站也上不去,像是擋錯人的意思),在現階段看起來比較好用的,會是 weburl 這個 match module,但並不是 Kernel 本身所內建的,而是需要自己去進行 Porting。

2016年2月21日 星期日

grub-customizer

這邊提供一個程式給大家,是關於 grub 修改的小工具。有時候我們編譯完 Kernel,需要去修改 grub 的部分,如果不利用 tool 去修改,就要自己透過 terminal,不但難度增加,而且很容易錯,有了這個 tool,可以讓你更方便修改 grub。

大安森林公園站 與 建國花市

今天溜搭的地方為,大安區



之前在網路上,有看到人家分享到“大安森林公園”這一站,看起來是一個蠻特別的捷運站,因此這星期有空,去一下這邊看看到底長什麼樣子,順便晃晃建國花市。

2016年2月18日 星期四

2016年2月6日 星期六

MAC 安裝程式的方法

最近剛好有朋友買了 MAC,算是第一次使用 MAC OSX,因此對於如何安裝程式有些不太了解,因此我拍了幾個影片示範一下,順便簡單練習一下 iMovie (P.S. 買了 MAC 好一陣子了,iMovie 這個居然沒什麼玩到)