LSI Jiu-Jitsu

電子工作とブラジリアン柔術

BNT-71W

f:id:mohran:20160320224559j:plain

昨年末に注文していた格安タブレット

BNT-71W

が先日ようやく届きました。

第4次予約の注文でした。

 

7インチ

1.3G 4コアCPU

モリー1G

Andoroid5.1

HDMI出力

のスペックで7,980円。

価格.comでも大絶賛されています。

 

使用感は全く問題なく評判通りのタブレットでした。

7インチは軽くて良いですね。

ただ液晶の画質はちょっとイマイチでした。

普段iPad miniRetina画質に慣れてしまっているというのもあるのですが・・。

 

f:id:mohran:20160320224600j:plain

同時に購入した専用ケースもピッタリです。

 

f:id:mohran:20160320224601j:plain

HDMIケーブルでTVと接続して動画を出力しました。

本当の購入目的はこれをやりたかったからなのです。

柔術の試合動画や教則動画を道場のTVに映してみんなで見ます。

さっそく道場に持っていったら大好評でした。

有線なので遅延も無く設定なども一切不要です。

良い買い物をしました。

【柔術】COPA Las Conchas 2016 & JBJJF - 第10回全日本マスター柔術選手権

1月31日、4ヶ月ぶりに試合に出場しました。

COPA Las Conchas 2016

ワンマッチです。

 

試合展開は、テイクダウンで2P先行された状態から、なんとかバックポジションを取れて4P奪取。

そのまま送り襟締めで勝つことができました。

ワンマッチ優勝の金メダルです。

 

そしてラスコンチャスから3週間後の2月21日。

JBJJF - 第10回全日本マスター柔術選手権

7人トーナメントの非シードでしたので、3回勝てば優勝です。

 

1回戦、引き込みからスイープで2P先制するもパスガードが成功しません。

そのままテイクダウン気味に倒されながらも2Pを守りきり辛勝。

ですが、スタミナを使い果たしてしまいました・・。

 

準決勝戦、相手選手はシードのためスタミナ万全です。

対するワタクシはヘロヘロで頭がボ~っとしています。

 

引き込んで時間をかけてゆっくり攻めていきたい気持ちを読まれたのか、フルパワーのクロスニーパスで開始10秒で早くも3P献上。

おまけにニーオンザベリーの2P追加から、チョークのアドバンテージまで。

あぁ、このまま何もできずに負けてしまうのかな~、と思った時に相手選手の攻め疲れが見えたので膝を入れてガードに戻せました。

その後は自分のペースで試合を運べて、スイープ、パスガードで5P奪取して同点まで追いつきました。

そしてそのままサイドポジションの状態から腕十字へ移行して一本。

これまた危ない勝利です。

 

そしていよいよ決勝戦

相手選手は、以前出稽古などで何度か手を合わせたことのある非常に強い選手です。

正直、トーナメント表を見た時に1回戦で当たらず反対ブロックだったことにホッとしました。

お互い引き込んでのWガード状態。

足を抱えられません。

20秒経過でお互いにペナルティ。

リスタート。

またもやWガード状態から20秒経過。

そして再リスタートも同じ結果。

相手選手は下が得意な選手ですが、ワタクシも下を取りたいのです。

両者3回のペナルティで後がありません。(4回目は失格)

またもWガード。

相手選手が立ったくれました。(相手選手にアドバンテージ)

ワタクシはスイープ狙い。

スイープ成功!

と思ったのですが、尻餅をつかせただけでアドバンテージ止まり。(アドバンテージ同点)

再度リスタートからのWガードで、今度はワタクシが上を選択。(アドバンテージリード)

このまま残り時間1分、アドバンテージ先行で逃げ切りたいところでしたが、相手選手もそうはさせまいと、ハーフガードから怒涛のスイーププレッシャーです。

残り15秒。

やられました。

完全にひっくり返されました。

P2-4 / AD3-2 / PE3-3 で負けてしまいました。

 

銀メダルです。

白熱した試合で両陣営のセコンドからも温かい拍手を頂きました。

昨年の全日本マスターも銀メダルでしたので2年連続の準優勝。

来年こそは金メダルを取りたいです。

その為には日々の練習と向上心が欠かせませんね。

柔術は楽しいです。

来月もDUMAUに参加予定です。

また次も頑張ります。

 

f:id:mohran:20160224002324j:image

Chromecast

f:id:mohran:20151221231021j:plain

Chromecastを買ってみました。

iTunesからiPhoneに転送した動画をTVで再生したかったのですけどね・・。

どうやらiOS9ではできないようでした。

動画はiPhoneで撮影した写真アプリ内のみのようです。(ビデオアプリ内の動画は再生できない)

残念。

まぁ、でもYoutubeを見たりとか他の楽しみ方で使い倒そうと思います。

Makefileにサーチパスを追加

コンパイルしたexeをMakefileから実行させたい時などで、実行時に一時的にサーチパスを追加する方法です。

シェルスクリプトと同じ書き方でいけると思いきや意外と手こずりました。

やりたことは make run とした時に、ホームにあるOpenCVライブラリを $LD_LIBRARY_PATH に追加してexeを実行することです。

何種類か書いてようやく納得できる書き方が見つかりましたのでまとめてみます。

 

■ その1

シェルスクリプトのように再帰的に後ろに追加

export LD_LIBRARY_PATH = $(LD_LIBRARY_PATH):$(DIR_OPENCV_LIB)

run:
    ./exe

→ makeエラー

Makefile:xx: *** 再帰的変数 `LD_LIBRARY_PATH' が(最終的に)それ自身を参照しています. 中止.

 

■ その2

"+=" で追加

export LD_LIBRARY_PATH += $(DIR_OPENCV_LIB)

run:
    ./exe

→ 実行エラー

/usr/lib:/usr/local/lib ~/tool/opencv/lib

パスがコロンで区切られていないので見つからない。

 

■ その3

"+=" に ":" を追加

export LD_LIBRARY_PATH += :$(DIR_OPENCV_LIB)

run:
    ./exe

→ とりあえずOK

/usr/lib:/usr/local/lib :~/tool/opencv/lib

コロンが付いたことで認識できるようになったけど空白が気になる・・。

 

■ その4

echoさせてから後ろに追加

export LD_LIBRARY_PATH = $(shell echo $$LD_LIBRARY_PATH):$(DIR_OPENCV_LIB)

run:
    ./exe

→ OK!

/usr/lib:/usr/local/lib:~/tool/opencv/lib

意図した通りに追加されました。

g++でDPI-C向けライブラリを作成

g++でコンパイルしたライブラリをSystemVerilogからDPI-Cを通してコールしたところvcsがエラーを吐き出しました。

Error-[DPI-DIFNF] DPI import function not found
**********.sv, **
 The definition of DPI import function/task 'Convert' does not exist.
 Please check the stated DPI import function/task is defined, and its
 definition is either passed in a source file at compile-time, or provided in
 a shared library specified using the LRM Annex-J options at run-time.

どうやらそんな関数(Convert)が見つからないよと言っているようです。

試しにgccコンパイルして問題なくコールできているライブラリをg++でコンパイルし直してみたところ、やはり上記のようなエラーが発生しました。

 

調べてみると、どうやらg++でコンパイルすると名前修飾の影響で関数名が変わってしまうようです。

nmでシンボルリストを見てみると

$ nm refc.so
.............
00000000000093ea T _Z13ConvertiiiiiPviiiiiS_S_iiS_
.............

Convertの前後に文字列が付与されています。

 

これを回避する方法として、関数全体をextern "C"で囲って名前修飾させないようにする(C言語の名前で関数名を構築)のが一般的なようです。

#include "svdpi.h"

#ifdef __cplusplus
extern "C" {
#endif

int Convert(
 const svOpenArrayHandle in_img,
       svOpenArrayHandle out_img
){
......

 return(0);
}

#ifdef __cplusplus
}
#endif

nmでシンボルリストを見ると余計な文字列が付いていませんでした。

$ nm refc.so
00000000000093da T Convert
.............

これで無事にSystemVerilogからコールすることができるようになりました。

 

ちなみにライブラリを作る時のMakefikeはこんな感じにしています。

refc_src = refc.cpp
refc_obj = $(refc_src:%.cpp=%.o)
refc_so  = refc.so

%.o: %.cpp
	g++ -m64 -fPIC -I$(VCS_HOME)/include -I$(refc_dir) -o $@ -c $<

$(refc_so): $(refc_obj)
	g++ -m64 -shared -o $(refc_so) $(refc_obj)