2021年09月07日 [Web] VisCloud
_ [Web] レスポンシブデザイン
たぶん誰一人として見てないであろうVisCloudのホームページを更新して,レスポンシブデザインを適用してみた.スマホやタブレットからでも見れるんだけど左端に置いてるメニューが邪魔で,画面小さい端末ではメニューを隠れるようにしてみた. 久しぶりにCSSとか触って気が狂いそうに.
それとついでこの日記(tdiary5.x)もレスポンシブっぽくしてみた. S-blueのテーマを使っているのですが,画面が小さいと左のメニューは邪魔なので,それを消してみるデザインにCSSを付け加えてみた.
.sidebar { display: block; } div.main { margin-left: 20%; } body { margin-right: 8%; margin-left: 8%; } pre { font-family: Consolas, Menlo, 'Liberation Mono', Courier, monospace; font-size: 0.95em; letter-spacing: 0.03em; overflow: auto; } @media screen and (max-width: 1000px){ .sidebar { display: none; } div.main { margin-left: 0%; } body { margin-right: 0px; margin-left: 0px; } img.photo { width: 100%; } }
2021年09月11日 [子供の数学] 最近の中学生ってこんなん解いてるの?
_ [子供の数学] 12個の玉
子供と遊んでいると,ある問題に出くわした.初見,簡単じゃね?って思ってたら,思いの外,難しかった.というか,え?あれ?ってなった.なので備忘録的に残しておく.
んで,問題.
12個の玉がある.うちひとつだけ重さが違うものが存在する.天秤を3回だけつかい,そのひとつを特定せよ.またその際,他の玉と重いのか軽いのかも特定せよ.
てな感じ.まあよくありそうな問題.
じゃあ解決編いくよー.
4つずつ、3つのグループに分ける。それぞれA,B,Cとする。また、重量の違う玉をxとする。 AとBを天秤にかける。(1回目) | +-傾いた場合 | ABの8つの玉のうちにxが混じっていることが解る。でかつ重い可能性がある玉が4つ、軽い可能性がある玉が4つとなる。 | その8つの玉を次のようにグループ分けする。 | 重軽軽・・・D | 重軽軽・・・E | 重重・・・・F | で、次にDとEを天秤にかける(2回目) | | | +-Dに傾いた場合 | | Dの重い玉、もしくはEの2つの軽い玉のいずれかにxがあると特定できる。つまり3つに特定できる。 | | でEにあった2つの軽い玉を天秤にかける(3回目) | | +-傾いた場合 | | | 軽かった方が、x | | +-つりあった場合 | | 天秤にかけなかった、重い玉がx | | | +-Eに傾いた場合 | | Eの重い玉、もしくはDの2つの軽い玉のいずれかに、以下同文。 | | | +-つりあった場合 | Fの2つのいずれかがxであると特定できる。よって、Fの2つを天秤にかける(3回目) | 傾いた方が、x | +-1回目の天秤でつりあった場合 Cの4つの玉にxが混じっていることが解る。またABはすべて同じ重さということが解る。 Cのうち3つを選択し、またAのうち3つを選択し天秤にかける(2回目) | +-元Cに傾いた場合 | 天秤にかけた元Cの3つが重いことが解る。 | 3つのうち2つを天秤にかける。(3回目) | +-傾いた場合、 | | 2つのうち重い方がx | +-つりあった場合 | 残りの1つがx | +-元Aが傾いた場合 | 天秤にかけた元Cの3つが軽いことが解る。 | 上記と同様に、以下同文。 | +-つりあった場合 天秤にかけなかった1にxが特定される。 で、同じ重さの玉と、xを天秤にかけてると(3回目)xが軽いか重いが解る。
なにこれ,こんな場合分けしなきゃいけないの!? じゃあね!
2021年09月14日 [OpenCV][ubuntu] Jawmotion Web Application
_ [OpenCV] 試しにリリース
Jawmotion Web Applicationを整理してみた. とりあえず,setupとinstallationは書いてみたんだけど,まあ雑です.
OpenFace自体,更新が2016年に止まっているような遺産っぽいプロジェクトなんだけど,Githubの方は地味に更新している.なので試しにUbuntu 20.04でbuildしてみたら動いた. だから,僕らのJawmotionもUbuntu 20.04で動くので,お試しリリースしてみた.
Githubの方ではあんまり書いてないんだけど顎関節の動きをキャプチャするアプリなんだよね.でも精度が上がらないからほぼお蔵入り状態なんだ. 顎に1cmくらいのシールをつけて顎を動かすと,キャプチャしてくれるんだ.そんなアプリが何に役に立つのかは内緒なんだけど,興味あるんなら試してみて!じゃあね!
_ [OpenCV][ubuntu] OpenFace 2.2.0のインストール
先にも書いたけど,OpenFaceって終わったプロジェクト感を出してて,もう使えないのかな?って思うんだけど,それは気の所為で実はほんのり活動している. それは一部のcontributorによるものだけど,それはそれですごくありがたい.おかげでUbuntu 20.04 LTSで動く. でもちょっとあれなので,OpenFace 2.2.0のインストール方法を書き留めておく.まずgithubからcloneしてインストールスクリプトを動かしていくよ!
git clone https://github.com/TadasBaltrusaitis/OpenFace.git cd OpenFace ./install.sh ... -- Configuring done CMake Error: install(EXPORT "OpenCVModules" ...) includes target "opencv_core" which requires target "tbb" that is not in any export set. CMake Error in CMakeLists.txt: export called with target "opencv_core" which requires target "tbb" that is not in any export set.
てな感じでinstall.shを動かすとOpenCV 4.1.0をダウンロードしてcmakeしようとするんだ.そこでtbbが見つからないぜ!っていうCMake Erroがでて終了しちゃう.あーやっぱ終わったプロジェクトってあれだなーって思うのはちょっと待ってほしい.実はちゃんとMakefileができているんだ.
cd opencv-4.1.0/build make -j4
ってやってほしい.opencv 4.1.0のmakeは僕の環境では死ぬほど時間がかかったけどちゃんとできる. 後は,install.shができなかったことをやるだけなんだ.まずはdlibをbuildしていくよ!
wget http://dlib.net/files/dlib-19.13.tar.bz2 tar xf dlib-19.13.tar.bz2 mkdir -p dlib-19.13/build cd dlib-19.13/build cmake .. cmake --build . --config Release sudo make install sudo ldconfig
最後にOpenFace本体だ.
cd ../.. mkdir -p build cd build cmake -D CMAKE_CXX_COMPILER=g++-8 -D CMAKE_C_COMPILER=gcc-8 -D CMAKE_BUILD_TYPE=RELEASE .. make
んで最後に顔モデルをhttps://github.com/TadasBaltrusaitis/OpenFace/wiki/Model-downloadからダウンロードしてOpenFace/build/bin/model/patch_expertsに置くとFaceLandmarkVidとかのアプリがちゃんと動くようになる.
どうやらmacOSでもbuildできるっぽいから,また試してみるよ!じゃあね!
2021年09月21日 [mac] ssh経由でX Windowを表示するだけの話 / Rをjupyter notebookで使う話
_ [mac] ssh経由でX Windowを表示できたはずなのに...
ssh ホスト名 -X
ってするとリモートのX Windowを表示できたじゃん?でも気づいたらmacでは表示できなくなってた.あれー?ということで/etc/ssh/ssh_configに以下を追記するよ
XAuthLocation /usr/X11/bin/xauth
で,macのXQuartzに飛ばしてくれるよ!じゃあね!
_ [R応用] みんな大好きjupyter notebookでRを使えるようにするよ
Rをターミナルで立ち上げるじゃん?
install.packages(c('repr', 'IRdisplay', 'evaluate', 'crayon', 'pbdZMQ', 'devtools', 'uuid', 'digest')) devtools::install_github('IRkernel/IRkernel') IRkernel::installspec()
ってすると,IR kernelがインストールされてjupyter notebookの実行環境にRが追加されちゃうよ.みんなも試してみてね!R4.xでも確認したよ!