Raspberry Pi Zero Tips

ダウンロード
Raspberry-Pi-Zero-web
24日にKSYとスイッチサイエンスからRaspberry Pi Zero発売ってことでTipsを書いてみます.

Raspberry-Pi-Zero-web (コピー)

  • 本体の他に最低限microSD(OS領域)やmicroUSBケーブル(電源)が必要です.(microUSBへのOS導入に別途PCも必要).
  • HDMIディスプレイを利用したい場合は大抵の場合別途mini HDMIからフルサイズへの変換アダプタやケーブルが必要です.※PIZEROはmini HDMIです.よく見かけるのはmicro HDMIなので注意しましょう.
  • コンポジットのディスプレイを利用したい場合はジャックなどをはんだ付けする必要があります.(TVのシルク)
  • microUSBx2のうち片方(PWR IN)は電源専用です.
  • もう片方(USB)はUSB OTGでHOSTにもGadget(SerialやEthernetはdebugに便利!)にもなれます.電源供給も可能なので電源容量が足りるならこの1本だけで運用することも可能です.microUSBケーブルやOTGケーブルはそれなりのものを使ったほうが良いです.安いものを使ったらPIZERO側のコネクタが傷んで使えなくなってしまいました.
  • USBを利用する場合は給電が可能なmicroUSBのHUBがデバッグに便利です.
  • GPIO Pinは+以降と共通だけどピンは未実装なので利用したい場合は自分で別途ピンヘッダ等購入してはんだ付けする必要があります.カラフルなピンヘッダをASUS TINKER BOARDのようにピンの用途毎に変えると便利そうです.
    XxbHbzYFnf4AVH1a_setting_fff_1_90_end_1000C-06641

  • 純正カメラモジュールを利用する場合はRaspberry Pi Zero V1.3以降が必要(KSYもスイッチサイエンスもV1.3と書かれているので問題ない)で更にカメラモジュール付属のものとは別のPIZERO専用のケーブルが必要です.

  • KSYでは5000円以上送料無料,それ以下は一律756円の送料が掛かる.KSYを初めて使う人は形式チェックが厳しくて結構面倒なので前もってアカウントを登録しておいたほうが良いです.(単品で買うのであれば海外で買うのと変わらないか高いくらいなので早く欲しい人向け?)
  • スイッチサイエンスでは送料150円.3000円以上送料無料.単品で買う場合おすすめ.但し2017年3月20日週から順次発送予定なので届くまで暫くかかります.
  • 余録.チョコベビーの容器はケースにちょうどいいです :)
    • IMG_20170216_075638

Raspberry Piでコンポジットで起動した後に解像度やディスプレイを変更する

コンポジット出力の解像度変更

Raspberry Piを起動するときにHDMIを接続した状態で起動すると高解像度で起動しますが,繋いでいないとコンポジット出力で起動してXの解像度が720×480になってちょっと手狭です.
xrandrで解像度を追加するとXの再起動もせずに高解像度に出来ます.

※xrandrコマンドは対象のX端末上か,DISPLAY変数を対象のものを指定して実行すること

  • 720x480しか選べない
$ xrandr 
Screen 0: minimum 320 x 200, current 720 x 480, maximum 2048 x 2048
HDMI-0 disconnected (normal left inverted right x axis y axis)
Composite-0 unknown connection 720x480+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   720x480       62.69* 
DSI-0 disconnected (normal left inverted right x axis y axis)
  • cvtコマンドで設定したい解像度を指定してModelineを調べる
$ cvt 1360 768
# 1360x768 59.80 Hz (CVT) hsync: 47.72 kHz; pclk: 84.75 MHz
Modeline "1360x768_60.00"   84.75  1360 1432 1568 1776  768 771 781 798 -hsync +vsync
  • xrandrのmodeを作成する
$ xrandr --newmode "1360x768_60.00"   84.75  1360 1432 1568 1776  768 771 781 798 -hsync +vsync
  • modeが増えている
$ xrandr 
Screen 0: minimum 320 x 200, current 720 x 480, maximum 2048 x 2048
HDMI-0 disconnected (normal left inverted right x axis y axis)
Composite-0 unknown connection 720x480+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   720x480       62.69* 
DSI-0 disconnected (normal left inverted right x axis y axis)
  1360x768_60.00 (0x248) 84.750MHz
        h: width  1360 start 1432 end 1568 total 1776 skew    0 clock  47.72KHz
        v: height  768 start  771 end  781 total  798           clock  59.80Hz
  • modeをComposite-0に追加する
$ xrandr --addmode Composite-0 1368x768_60.00
$ xrandr 
Screen 0: minimum 320 x 200, current 720 x 480, maximum 2048 x 2048
HDMI-0 disconnected (normal left inverted right x axis y axis)
Composite-0 unknown connection 720x480+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   720x480       62.69* 
   1360x768_60.00  59.80  
DSI-0 disconnected (normal left inverted right x axis y axis)
  • 設定したmodeに切り替える
$ xrandr --output Composite-0 --mode 1360x768_60.00

起動後にHDMIに切り替える

解像度の変更ではなく起動後にHDMI接続に切り替えるのもxrandrで出来ます.こちらもXの再起動は必要ありません.

  • HDMIケーブルを接続するとHDMI-0 connectedとなってmodeが選べるようになる
$ xrandr 
Screen 0: minimum 320 x 200, current 1366 x 768, maximum 2048 x 2048
HDMI-0 connected 1366x768+0+0 (normal left inverted right x axis y axis) 580mm x 360mm
   1366x768      59.79*+
   1920x1080     60.00    59.94  
   1920x1080i    60.00    50.00    59.94  
   1280x1024     60.02  
   1152x864      75.00  
   1280x720      60.00    58.68    50.00    59.94  
   1024x768      75.03    70.07    60.00  
   832x624       74.55  
   800x600       72.19    75.00    60.32    56.25  
   720x576       50.00  
   720x576i      50.00  
   720x480       60.00    59.94  
   720x480i      60.00    59.94  
   640x480       75.00    72.81    66.67    60.00    59.94  
   720x400       70.08  
Composite-0 unknown connection (normal left inverted right x axis y axis)
   720x480       62.69  
   1360x768_60.00  59.80  
DSI-0 disconnected (normal left inverted right x axis y axis)
  • 一度にコンポジットを無効にしてHDMIを有効にしようとするとエラーとなる
$ xrandr --output Composite-0 --off --output HDMI-0 --auto
xrandr: cannot find crtc for output HDMI-0
  • 一度に行うのではなく先にコンポジットを無効にしてからHDMIを有効にするとうまく行った
$ DISPLAY=:0 xrandr --output Composite-0 --off
$ DISPLAY=:0 xrandr --output HDMI-0 --auto
  • 逆にHDMIからコンポジットに切り替えることも出来る
$ xrandr --output HDMI-0 --off
$ xrandr --output Composite-0 --mode 1360x768_60.00

環境

  • HW : Raspberry Pi B 2
$ screenfetch 
    .',;:cc;,'.    .,;::c:,,.    pi@raspberrypi
   ,ooolcloooo:  'oooooccloo:    OS: Unknown 8.0 jessie
   .looooc;;:ol  :oc;;:ooooo'    Kernel: armv7l Linux 4.9.11-v7+
     ;oooooo:      ,ooooooc.     Uptime: 4h 28m
       .,:;'.       .;:;'.       Packages: 1541
       .... ..'''''. ....        Shell: 3362
     .''.   ..'''''.  ..''.      Resolution: 1368x768
     ..  .....    .....  ..      DE: LXDE lxpanel 0.7.2
    .  .'''''''  .''''''.  .     WM: OpenBox
  .'' .''''''''  .'''''''. ''.   GTK Theme: Clearlooks [GTK2], Not Found [GTK3]
  '''  '''''''    .''''''  '''   Icon Theme: nuoveXT2
  .'    ........... ...    .'.   Font: Sans 10
    ....    ''''''''.   .''.     CPU: ARMv7 rev 5 (v7l) @ 900MHz
    '''''.  ''''''''. .'''''     RAM: 258MB / 922MB
     '''''.  .'''''. .'''''.    
      ..''.     .    .''..      
            .'''''''            
             ......       

mpv audio delay

動画プレイヤーのmpvを最近良く使うけどBluetoothで音が遅れるのでディレイ掛けたい.
vlcだとj,kというショートカットで50msずつずらせたので同じようなことがしたい.
man見ると載っててmpvだとCtrl + / Ctrl -みたい,だけど100ms単位.
コマンドラインオプションや設定ファイルだと細かく指定できた.

  • ショートカット
       Ctrl + and Ctrl -
              Adjust audio delay by +/- 0.1 seconds.

※100ms単位(VLCは50ms単位)

  • オプション
       --audio-delay=<sec>
              Audio delay in seconds (positive or negative float value). Positive values delay the audio, and negative values delay the video.

こちらは細かい時間を指定可能.以下は-250msを指定.
$ mpv --audio-delay=-0.25 FILE
この状態でショートカットを利用すると-250ms -> -150msのような感じに100ms単位で移動する.

  • 設定ファイル
$ cat ~/.config/mpv/mpv.conf
audio-delay=-0.25
  • 環境
$ lsb_release -d
Description:    Ubuntu Zesty Zapus (development branch)
$ uname -a
Linux x200 4.9.0-15-generic #16-Ubuntu SMP Fri Jan 20 15:31:12 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
$ dpkg-query -W mpv
mpv     0.23.0-2

引用はmpv(1)より

JavaScript無効状態のブラウザでのDuckDuckGoカスタマイズ

DuckDuckGoをJavaScript無効にしたウェブブラウザで利用しようとすると以下で設定したカスタマイズが効かないようです.

これは以下のように設定していても

https://duckduckgo.com/?q=keyword&kp=-1&kl=jp-jp&kc=1&kf=-1&kh=1&k1=-1

JavaScriptが無効だと以下のページにリダイレクトされて,オプションが消えてしまうからのようです.

https://duckduckgo.com/html?q=KEYWORD

JavaScript無効環境では以下のようなURLを利用すると良さそうです.

https://duckduckgo.com/html?q=KEYWORD&kp=-1&kl=jp-jp&kc=1&kf=-1&kh=1&k1=-1

Joyfull Wi-Fi&電源利用可能に

IMG_20170126_000231

 

 

 

 

てことで九州民のオアシスJoyfullの一部店舗でWi-Fiが利用可能になっているようです.更に電源も利用可能とか.

鹿屋近辺の4店舗(高山店,肝付店,鹿屋北店,鹿屋店)を回ってみたところうち1件(肝付店)で利用可能なのを確認しました.

IMG_20170125_235917

Wi-FiはOPENで接続後認証が必要です.認証は以下のような感じで各種SNSやメールアドレスが利用できました.

Screenshot_2017-01-26-00-05-01Screenshot_2017-01-26-00-05-52

USENと株式会社ファイバーゲートのサービスのようです.

株式会社USENと株式会社ファイバーゲートが運営するWIFIサービスサポートセンター(以下「当社」といいます)が提供するインターネット接続等に関するサービス

回線はASAHIネットのようです.

$ traceroute-nanog www.google.com|head
traceroute to www.google.com (202.224.62.89), 30 hops max, 60 byte packets
 1  gateway (192.168.150.1)  2.994 ms  2.987 ms  2.968 ms
 2  kgsnik31.asahi-net.or.jp (202.224.38.216)  7.214 ms  9.284 ms  9.515 ms
 3  tkybi3-v7.asahi-net.or.jp (202.224.38.1)  32.352 ms  32.785 ms  32.584 ms
 4  tkycr2-v2.asahi-net.or.jp (202.224.32.182)  33.519 ms  33.885 ms  34.059 ms
 5  tkycr1-v1001.asahi-net.or.jp (202.224.51.1)  33.718 ms  33.835 ms  33.382 ms
 6  cs1cr1-v1002.asahi-net.or.jp (202.224.51.6)  34.042 ms  33.787 ms  33.502 ms
 7  cs1cdn2-v1023.asahi-net.or.jp (202.224.51.90)  33.597 ms  33.592 ms  34.722 ms
 8  cs1cdn1-v1031.asahi-net.or.jp (202.224.51.121)  32.347 ms  34.007 ms  33.860 ms
 9  * * *

速度は上下とも20Gbps前後

Speedtest by Ookla

1/26の時点では5GHz帯のみで珍しいなと思っていましたが,

1/30には2.4GHz/5GHz両方生きてるのを確認しました.

26日の時点ではAP落ちてたのかな?

大隅半島でWi-Fiが利用できてゆっくり出来る飲食店は他にマクドナルド西原店,自遊空間鹿屋店位だと思うのでかなり嬉しいです.

他の店舗にも速く導入して欲しい&電源席増強して欲しいとこです.

<追記>
モスバーガー鹿屋バイパス店にもFree Wi-Fiがあるようです.

</追記>

<追記2>
殆どの店舗への導入が済んだのか2017-03-29に「Free Wi-Fi はじめました!!」というメールが届きました.そして接続方法のドキュメントも.

20170329_17:03:39-18859
</追記2>

Joyfull Wi-Fi&電源利用可能に

IMG_20170126_000231

 

 

 

 

てことで九州民のオアシスJoyfullの一部店舗でWi-Fiが利用可能になっているようです.更に電源も利用可能とか.

鹿屋近辺の4店舗(高山店,肝付店,鹿屋北店,鹿屋店)を回ってみたところうち1件(肝付店)で利用可能なのを確認しました.

IMG_20170125_235917

Wi-FiはOPENで接続後認証が必要です.認証は以下のような感じで各種SNSやメールアドレスが利用できました.

Screenshot_2017-01-26-00-05-01Screenshot_2017-01-26-00-05-52

USENと株式会社ファイバーゲートのサービスのようです.

株式会社USENと株式会社ファイバーゲートが運営するWIFIサービスサポートセンター(以下「当社」といいます)が提供するインターネット接続等に関するサービス

回線はASAHIネットのようです.

$ traceroute-nanog www.google.com|head
traceroute to www.google.com (202.224.62.89), 30 hops max, 60 byte packets
 1  gateway (192.168.150.1)  2.994 ms  2.987 ms  2.968 ms
 2  kgsnik31.asahi-net.or.jp (202.224.38.216)  7.214 ms  9.284 ms  9.515 ms
 3  tkybi3-v7.asahi-net.or.jp (202.224.38.1)  32.352 ms  32.785 ms  32.584 ms
 4  tkycr2-v2.asahi-net.or.jp (202.224.32.182)  33.519 ms  33.885 ms  34.059 ms
 5  tkycr1-v1001.asahi-net.or.jp (202.224.51.1)  33.718 ms  33.835 ms  33.382 ms
 6  cs1cr1-v1002.asahi-net.or.jp (202.224.51.6)  34.042 ms  33.787 ms  33.502 ms
 7  cs1cdn2-v1023.asahi-net.or.jp (202.224.51.90)  33.597 ms  33.592 ms  34.722 ms
 8  cs1cdn1-v1031.asahi-net.or.jp (202.224.51.121)  32.347 ms  34.007 ms  33.860 ms
 9  * * *

速度は上下とも20Gbps前後

Speedtest by Ookla

1/26の時点では5GHz帯のみで珍しいなと思っていましたが,

1/30には2.4GHz/5GHz両方生きてるのを確認しました.

26日の時点ではAP落ちてたのかな?

大隅半島でWi-Fiが利用できてゆっくり出来る飲食店は他にマクドナルド西原店,自遊空間鹿屋店位だと思うのでかなり嬉しいです.

他の店舗にも速く導入して欲しい&電源席増強して欲しいとこです.

<追記>
モスバーガー鹿屋バイパス店にもFree Wi-Fiがあるようです.

</追記>

<追記2>
殆どの店舗への導入が済んだのか2017-03-29に「Free Wi-Fi はじめました!!」というメールが届きました.そして接続方法のドキュメントも.

20170329_17:03:39-18859
</追記2>

Mumble server設定メモ

鹿児島Linux勉強会 2017.01の遠隔で利用した設定メモです.

  • サーバのOSはDebian jessie amd64
  • 自動起動せず利用時に手動で起動する
  • fwも都度手動
  • サブチャンネルはなし
  • ssl証明書は既存のstartsslを利用

pkgの導入

$ sudo apt install mumble-server

自動起動を無効にする

$ sudo dpkg-reconfigure mumble-server

で設定画面に入り,

Mumble-server (murmurd) can start automatically when the server is booted.

Autostart mumble-server on server boot?

を選択する.
(/etc/default/mumble-serverMURMUR_DAEMON_START=0でも)

設定ファイルを編集

diff --git a/mumble-server.ini b/mumble-server.ini
index b445d4e..46f1dfd 100644
--- a/mumble-server.ini
+++ b/mumble-server.ini
@@ -12,7 +12,7 @@
 #        NOT regex = \w* BUT regex = \\w*

 # Path to database. If blank, will search for
-# murmur.sqlite in default locations or create it if not found.
+A
 database=/var/lib/mumble-server/mumble-server.sqlite

 # If you wish to use something other than SQLite, you'll need to set the name
@@ -86,7 +86,7 @@ pidfile=/var/run/mumble-server/mumble-server.pid
 # configure it here ehan ehrough D-Bus or Ice.
 #
 # Welcome message sent to clients when they connect.
-welcometext="<br />Welcome to this server running <b>Murmur</b>.<br />Enjoy your stay!<br />"
+welcometext="<br />Welcome to KagoLUG server running <b>Murmur</b>.<br />Enjoy your stay!<br />"

 # Port to bind TCP and UDP sockets to.
 port=64738
@@ -144,26 +144,28 @@ users=100
 # addresses.
 # Only uncomment the 'registerName' parameter if you wish to give your "Root" channel a custom name.
 #
-#registerName=Mumble Server
+registerName=KagoLUG Mumble Server
 #registerPassword=secret
 #registerUrl=http://mumble.sourceforge.net/
-#registerHostname=
+registerHostname=kagolug.org

 # If this option is enabled, the server will announce its presence via the 
 # bonjour service discovery protocol. To change the name announced by bonjour
 # adjust the registerName variable.
 # See http://developer.apple.com/networking/bonjour/index.html for more information
 # about bonjour.
-#bonjour=True
+bonjour=False

 # If you have a proper SSL certificate, you can provide the filenames here.
 # Otherwise, Murmur will create it's own certificate automatically.
-#sslCert=
-#sslKey=
+#sslCert=/etc/letsencrypt/live/kagolug.org/cert.pem
+sslCert=/etc/letsencrypt/live/kagolug.org/fullchain.pem
+sslKey=/etc/letsencrypt/live/kagolug.org/privkey.pem
+#sslCA=/etc/letsencrypt/live/kagolug.org/fullchain.pem

 # If Murmur is started as root, which user should it switch to?
 # This option is ignored if Murmur isn't started with root privileges.
-uname=mumble-server
+uname=root

 # If this options is enabled, only clients which have a certificate are allowed
 # to connect.

ssl証明書をクリア

$ sudo murmurd -wipessl
$ sudo killall murmurd

利用時

デーモンの起動とポート開放を行う

$ sudo service mumble-server start
$ sudo iptables -A INPUT -p udp -m udp --dport 64738 -j ACCEPT
$ sudo iptables -A INPUT -p tcp -m tcp --dport 64738 -j ACCEPT

利用者にはサーバとポートを伝える
– server : kagolug.org
– port : 64738

mumble://kagolug.org?title=KagoLUG%20Mumble%20Server&version=1.2.0

利用環境

  • PC : ThinkPad X200(Ubuntu 16.10 amd64)
  • マイク : elecom製の数百円のもの
  • スピーカー : Elecom LBT-SPTR01ECBK

はじめLBT-SPTR01ECBKでマイクとスピーカー両方の役割をと思っていたが,うまく音を拾えない&HSP/HFPでは音が悪く聞き取りづらかったので役割を分けた.
マイクはPC直付だったので音を拾いづらい&キー入力の音などを拾っていたはず.

利用完了時

デーモンの終了

$ sudo service mumble-server start

iptablesのmumbleルールを閉じる

$ sudo iptables -L --line-numbers | grep 64738
23   ACCEPT     udp  --  anywhere             anywhere             udp dpt:64738
24   ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:64738
$ sudo iptables -D INPUT 23
$ sudo iptables -D INPUT 24
$ sudo iptables -L --line-numbers | grep 64738

課題

ssl証明書ファイルを読み込むためにdaemonをrootで動かしているのをmumble-serverユーザに戻したい.

-uname=mumble-server
+uname=root
$ sudo ls -l /etc/letsencrypt/live/kagolug.org/fullchain.pem /etc/letsencrypt/live/kagolug.org/privkey.pem
lrwxrwxrwx 1 root ssl-cert 40 Dec 26 10:30 /etc/letsencrypt/live/kagolug.org/fullchain.pem -> ../../archive/kagolug.org/fullchain9.pem
lrwxrwxrwx 1 root ssl-cert 38 Dec 26 10:30 /etc/letsencrypt/live/kagolug.org/privkey.pem -> ../../archive/kagolug.org/privkey9.pem

ssl-certグループにmumble-serverを登録で行けそう?

マイク

会議向けの全方位のマイクが欲しい

鹿児島Linux勉強会 2017.01に参加

今回は遠隔参加を試してみました.BigBluebuttonなどの会議システムは映像も双方向に送れていい感じなのですが,野良勉強会では回線が無かったり今使っているPCではリアルタイムエンコードが難しいという問題があります.そこで音声のみのMumbleを利用しました.

サーバはさくらのVPSに設定,会場ではBluetoothマイク兼スピーカーで……と思ったのですが,このマイクではうまく音を拾わない&ヘッドホンのプロファイルでは音質も悪いのでA2DPにしてスピーカーのみの利用として,マイクはPC直付にしました.
このマイクは一応前指向性ですが数百円の安物なので音質は悪かったと思います.
でも双方向でのやり取りが出来るのは良かったです.会議室利用の際は良さそうです.

今回は資料が事前に共有できていたので良かったですが,資料が事前に共有できない場合はやはりどうにか映像を共有する方法を考えないといけないでしょうね.
そうするとやはりBBBやYoutubeLive等が必要に…….(帯域をなるべく絞って映像のみRaspberry PiでYoutubeLive配信というのが現実的かな?)

私の発表した内容は以下の3本でした.

Raspberry PiのUSB OTGを試す // Speaker Deck

USBを保護するUSBGuard // Speaker Deck

ゲーミングプラットホームのLutris紹介 // Speaker Deck

データはこちら.
matoken / 鹿児島Linux勉強会2017.01 / ソース / — Bitbucket

Raspberry PiのUSB OTGはさわりだけでちょっとあれでした.次回までにもうちょっと…….

次回は2月上旬の土日にと思っています.今年は月一ペース開催を目標にと思っています.
最近は開催場所どうしよう……となって日が過ぎていくパターンなのでとりあえず日程アナウンスはして会場見つからなかったらマクドナルドとかで開催という感じで考えています.

コマンドスニペットを手軽に調べられるコマンドのborg

borgはOK borgというsiteのスニペットをコマンドライン上から検索したり編集できるコマンドのようです.borgはgo製でApache License Version 2.0のソフトウェアです.

導入

導入方法は如何から対応バイナリを入手して適当な場所に置き,実行権をつけるだけです.arm linuxとか*BSDとか結構いろいろそろっています.

今回はこんな感じで導入しました.

$ wget https://github.com/ok-borg/borg/releases/download/v0.0.1/borg_linux_amd64 -O ~/usr/local/bin/borg && chmod +x ~/usr/local/bin/borg

利用方法

基本的にコマンドの後ろに調べたいキーワードをつけるだけです.規定値では5つの例が表示されます. bashでloopどう書くんだっけ?

$ borg "bash loop"
(1) Bash Shell Do While Loop Infinite loop?
         [11] while [ `prog -some flags` = "Another instance of this program is running, please exit it first" ]
              -
              bay=$(prog -some flags)
              while [ $bay = "Another instance of this program is running, please exit it first" ]
              do
              echo "Awaiting Access to program"
              bay=$(prog -some flags)
              done
              .....
         [12] while true
              do
         ...  

(2) Bash foreach loop
         [21] xargs cat <filenames.txt
              -
              for fn in `cat filenames.txt`; do
                  echo "the next file is $fn"
                  cat $fn
              done
         [22] for fn in `cat filenames.txt`; do cat "$fn"; done
         [23] while read filename
              do
                  echo "Printing: $filename"
                  cat "$filename"
         ...

(3) Bash loop ping successful
         [31] ((count = 100))                            # Maximum number to try.
              while [[ $count -ne 0 ]] ; do
                  ping -c 1 8.8.8.8                      # Try once.
                  rc=$?
                  if [[ $rc -eq 0 ]] ; then
                      ((count = 1))                      # If okay, flag to exit loop.
                  fi
                  ((count = count - 1))                  # So we don't go forever.
              done
              if [[ $rc -eq 0 ]] ; then                  # Make final determination.
         ...

(4) Limit for bash loop
        [41] for(( i=1; i <= 1000; i++ )); do
                 name=$(date --date="$i day ago" +%Y%m%d%H%M%S)
                 mkdir -p "$name" &&
                 touch "$name/${name}_file" ||
                 break
             done

(5) Bash 'for' loop syntax?
         [51] for (($i=0...
              -
              for ((i=0;i<10;i++))
         [52] for i in `seq 0 9`
              do
                  echo "the i is $i"
              done
         [53] for i in {0..9}
                do
                  echo $i
                done
         ...

画像をタイルに結合って?

$ borg "image tile"
(1) ImageMagick crop huge image
         [11] $ time convert -crop 512x512 +repage huge.tif x/image_out_%d.tif
              real    0m5.623s
              user    0m2.060s
              sys     0m2.148s
              $ time vips dzsave huge.tif x --depth 1 --tile-size 512 --overlap 0 --suffix .tif
              real    0m1.643s
              user    0m1.668s
              sys     0m1.000s
         [12]  convert -monitor -limit area 2mb myLargeImg.tif myLargeImg.mpc
              -
               #!/bin/bash
         ...

(2) Set clipboard to image - pbcopy
        [21] cat image.png | impbcopy -
        [22] # Copy image to clipboard
             uuencode SomeFile.jpg - | pbcopy
             -
             # Paste from clipboard to image file
             pbpaste | uudecode -o AnotherFile.jpg


(3) Using Amazon MapReduce/Hadoop for Image Processing
         [31] and should be able to be done using Bash
         [32] #!/usr/bin/env bash
              # NLineInputFormat gives a single line: key is offset, value is Isotropic Url
              read offset isofile
              # Retrieve file from Isotropic server to local disk
              echo "reporter:status:Retrieving $isofile" >&2
              target=`echo $isofile | awk '{split($0,a,"/");print a[5] a[6]}'`
              filename=$target.tar.bz2
              #$HADOOP_INSTALL/bin/hadoop fs -get $isofile ./$filename
              curl  $isofile -o $filename
         ...

(4) Convert multipage PDF to a single image
        [41] convert in.pdf -append out%d.png
             -
             convert *.png output.pdf
             -
             convert foo?.png output.pdf
        [42] convert in.pdf +append out%d.png

(5) bash cgi won't return image
        [51] echo -ne "Content-type: image/png\n\n"
             -
             echo -e "Content-type: image/png\n"
             -
               -n     do not output the trailing newline

とかとか.

オプションはこんな感じとりあえず省略されないように-fをつけてページャに渡すと良さそう.

$ borg --help
Usage of borg:
-f  (= false)
    Print full results, ie. no more '...'
-h (= "borg.crufter.com")
    Server to connect to
-l  (= 5)
    Result list limit. Defaults to 5
-p  (= false)
    Private search. Your search won't leave a trace. Pinky promise. Don't use this all the time if you want to see the search result relevancy improved

検索だけでなくスニペットの追加や編集もできるようです.

サーバも選べるので自分用のメモを蓄積することもできますね. ちょっと惜しいのはサーバと通信して結果を表示するのでオフラインでは使えないというところ. オフラインで使いたい場合はローカルにサーバを立てるか別の方法を使うしかなさそうです.

H-IIB F6によるこうのとり6号機打ち上げ見学

ということでせっかくなので佐多岬の辺りまで出て見てきました.移動はmotercycleで寒いかなと着込んでいったのですが案外暖か,14度位あったようです.でも帰りは寒く家に着いたときは5度台でした. 移動は片道1時間ちょい.見学したのはさたでい号のそばの田尻海水浴場.



大きな地図を表示
#スカスカなのでサーベイしておくんだった…….

もう少し足を伸ばして佐多岬展望台というのも考えたのですが,展望場所はちょっと狭いし,そこまでの道も街灯もなくアップダウンのある道を歩かないといけないし最近工事しててどんな感じになっているかもわからないしで以前も見学していて確実なこちらに.

この辺りは今はDocomoもAUもLTEが入ってネットワーク環境もいい感じです.Youtubeの中継を聞きながら撮影準備に.用意しておいた三脚を忘れてしまいました.手持ちのものでカメラの仰角を取って試し撮り.

今回は,

  • Pentax K-5
  • SAMYANG 8mm F3.5
  • 自作レリーズケーブル

でISO6400 / ss2s / F3.5 な感じで連射してみました.ss2じゃカメラの処理が追いつかず途中から遅れていきました.もう少し絞ってssを伸ばせばよかったです.

後はうまく撮れるかわからないけどとスマホ(SO-02F)でも動画撮影を試してみました.動画撮影を試していると未だ余裕があると思っていたのにオレンジの点が.慌ててレリーズスイッチを押して撮影開始しました.

流石に音は全く聞こえません.昼間条件がいいとSRB-A分離もわかったりしますが夜はその辺りは全くわかりませんでした.その代わり長く追えます.見えなくなるまで見て5分位追えました.

周りは他に2グループくらい居た感じです.しかしせっかちなグループは撤収が早く車を避けたりでレンズに写り込んでしまったり>< これは三脚を用意して岸壁の海側で撮影しないとですね…….

てことで家に帰ってからStar Trailとtimelapsにしてみました.

H-IIB F6によるこうのとり6号機打ち上げ佐多田尻海水浴場より(StarTrail)


Star TrailはStarStaXというマルチプラットホームなクローズドソフトウェアを利用,timelapsはFfmpegで作成しました.

timelapsの方は今回はこんな感じでpv9のwebmにしてみたのですが,すごく小さくなりました.画質は落ちてる?画質は後で試して差し替えるかもしれません.

$ ffmpeg -r 10 -pattern_type glob -i 'IMGP????.JPG' out.webm

ちなみにVGAのアニメーションGIFで21MBを超えました(21863089byte)が,この動画は366KB(366305byte)でした. 元の静止画は1枚10MBちょっとで135枚. 不安になる小ささですね.

次は12/20に内之浦から打ち上げ予定のepsilon2/ERGの見学に行きたいと思っています.見学場所は迷っていて定番の内之浦漁港か宮原ロケット見学場と岸良の間かなと思っています.夜だし内之浦漁港の方が安全そう.でもライトアップするみたいなので撮影には向かないかも…….一度ロケハンに行きたいところ.

宮原ロケット見学場は一般人が唯一射場を望めるのですが,今回バスツアーのみになっていて一番近い鹿屋からだと割高感があって申し込みませんでした.国分鹿児島体とむしろ安く感じるんですけどね.