先推:
https://learn.adafruit.com/mqtt-adafruit-io-and-you
Bluetooth MQTT
http://www.instructables.com/id/IoT-your-Arduino-using-bluetooth-and-andriod-smart/
2016年6月29日 星期三
[Vim] taglist速記
下載:
http://vim.sourceforge.net/scripts/script.php?script_id=273
安裝:
$ mkdir ~/.vim
$ cd ~/.vim
$ unzip taglist.zip
啟用:
$ vim ~/.vimrc
filetype plugin on
使用:
:TlistOpen
加進 .vimrc (按 F12 開啟)
nnoremap :TlistOpen
幾個用法:
s 更改排序方式,在按名字排序和按出現順序排序間切換
x taglist窗口放大和縮小,方便查看較長的tag
<Space> 顯示tag的原型定義
視窗切換:
1. Control+W followed by W to toggle between open windows and,
2/ Control+W followed by H/J/K/L to move to the left/bottom/top/right window accordingly.
http://vim.sourceforge.net/scripts/script.php?script_id=273
安裝:
$ mkdir ~/.vim
$ cd ~/.vim
$ unzip taglist.zip
啟用:
$ vim ~/.vimrc
filetype plugin on
使用:
:TlistOpen
加進 .vimrc (按 F12 開啟)
nnoremap
<Space> 顯示tag的原型定義
2016年6月28日 星期二
2016年6月22日 星期三
[RPi] vchiq
...
The ARM11 CPU communicates with the VideoCore co-processor using a message passing interface (vchiq) which means that the CPU is not able to directly address the audio device hardware buffers and audio samples have to be sent to the device using vchiq messages.
...
The ARM11 CPU communicates with the VideoCore co-processor using a message passing interface (vchiq) which means that the CPU is not able to directly address the audio device hardware buffers and audio samples have to be sent to the device using vchiq messages.
...
reference: mmap support for Raspberry Pi bcm2835 ALSA driver
2016年6月18日 星期六
[Tips] 擷取framebuffer畫面
大部分嵌入式系統都會實做 framebuffer 的驅動程式介面, 如 /dev/fb0
因此要擷取畫面最簡單的方式就是
再將畫面倒回去
但要注意幾點
1. framebuffer 是記憶體 raw data, 因此存檔的結果是一連串的16進位數值, 因此無法使用一般的看圖軟體開啟, 但可以透過 imagemagick 裡的 display 工具顯示(需指定顯示的解析度)
2. 因此還原成一般的 jpg 或是 png 格式需指定 color-depth 和解析度
如果是 24-bit 可以使用 imagemagick 裡的 convert 工具
如果是 16-bit, 可以使用 iraw2png 這支 perl 程式
之後就可以用 gpicview 之類的軟體開啟 png 檔案了
reference:
* Working with Frame Buffers
* How to do a framebuffer screenshot
* Convert raw BGRA framebuffer to RGB png file (有條件限制使用)
因此要擷取畫面最簡單的方式就是
$ cat /dev/fb0 > fb.raw
再將畫面倒回去
$ sudo cp fb.raw /dev/fb0
但要注意幾點
1. framebuffer 是記憶體 raw data, 因此存檔的結果是一連串的16進位數值, 因此無法使用一般的看圖軟體開啟, 但可以透過 imagemagick 裡的 display 工具顯示(需指定顯示的解析度)
$ display -size 1024x768 rgb:fb.raw
2. 因此還原成一般的 jpg 或是 png 格式需指定 color-depth 和解析度
如果是 24-bit 可以使用 imagemagick 裡的 convert 工具
$ convert -depth 8 -size 640x480 rgb:fb.raw -channel RGB -separate -swap 0,2 -combine fb.png
如果是 16-bit, 可以使用 iraw2png 這支 perl 程式
#!/usr/bin/perl -w $w = shift || 240; $h = shift || 320; $pixels = $w * $h; open OUT, "|pnmtopng" or die "Can't pipe pnmtopng: $!\n"; printf OUT "P6%d %d\n255\n", $w, $h; while ((read STDIN, $raw, 2) and $pixels--) { $short = unpack('S', $raw); print OUT pack("C3", ($short & 0xf800) >> 8, ($short & 0x7e0) >> 3, ($short & 0x1f) << 3); } close OUT;執行 iraw2png 程式:
$ python iraw2png 640 480fb.png
之後就可以用 gpicview 之類的軟體開啟 png 檔案了
$ gpicview fb.png
reference:
* Working with Frame Buffers
* How to do a framebuffer screenshot
* Convert raw BGRA framebuffer to RGB png file (有條件限制使用)
2016年6月17日 星期五
[Tips] 好用的nc
nc 是非常強大的網路工具, 而在很多嵌入式系統使用的 busybox 都有內建 nc, 因此在沒有 ftp 或是 scp 等檔案傳輸協定實做時, 就非常方便了
例如, 我要將檔案從裝置端(Android)傳送到主機端(PC), 需要一台接收, 一台傳送
主機端接收
裝置端傳送
reference: Using nc to transfer large file
例如, 我要將檔案從裝置端(Android)傳送到主機端(PC), 需要一台接收, 一台傳送
主機端接收
nc -l 1234 > file.tar.gz
裝置端傳送
nc IP_of_PC 1234 < file.tar.gz
reference: Using nc to transfer large file
2016年6月12日 星期日
[Tips] Wordpress Manual Related Posts
每篇文章後面多了 related post 這個感覺比較好, 找了一下自動的不符合我需求, 最後還是使用手動 Manual Related Posts plugin
但是在 Find related posts 一直跑不出來結果, 先是用 firebug 發現 500 internal server error 但是看不出問題所在, 後來查了 apache error log 看到這行 "PHP Fatal error: Call to undefined method wpdb::esc_like()", 但還是不知道怎麼解決
最後搜尋了其他 plugin, 發現 relevanssi 這支寫了這段
加上去就會動了欸
但是在 Find related posts 一直跑不出來結果, 先是用 firebug 發現 500 internal server error 但是看不出問題所在, 後來查了 apache error log 看到這行 "PHP Fatal error: Call to undefined method wpdb::esc_like()", 但還是不知道怎麼解決
最後搜尋了其他 plugin, 發現 relevanssi 這支寫了這段
if (method_exists($wpdb, 'esc_like')) { $term = $wpdb->esc_like(esc_sql($term)); } else { // Compatibility for pre-4.0 WordPress $term = like_escape(esc_sql($term)); }
加上去就會動了欸
2016年6月11日 星期六
[Tips] 加速你的Wordpress
http://www.sparringmind.com/speed-up-wordpress/
這篇介紹的幾個plugin有些還不錯
比如說 W3 Total Cache , 提供各種 caching 機制, 還有 js 或是 css 的壓縮等
或者是 WP-SmushIt, 號稱可以自動的將圖片縮放, 減少網路的傳輸量
還有透過 Advanced Excerpt 可以不要顯示全文, 讓使用者點進去才載入全部頁面
最後一招是 Lazy Load, 這可以在頁面往下拉以後才顯示圖片, 也是能有效降低網路傳輸量
最後可以用 PageSpeed Insights 檢查可改進的地方, 網頁效能優化是一個需要持續改進的工作阿!
訂閱:
文章 (Atom)