2018年明けましておめでとうございます。
明けましておめでとうございます。Yadex205 です。
昨年 2017年は大学院中退や VJ チーム SabaLeoN に所属したこともあり、結果として VJ させて頂ける機会が増えました。 本当にありがたいことですし、出演させて頂けて本当に楽しい時間を何度も過ごすことができました。 繋がりも増え機材も増え、楽しい経験も増え人生で一番充実していた 1年だったと思います。
アルバイトの方では Ruby on Rails に触れてウェブアプリケーションやプログラミングについての知識も身についたと思います。 ISUCON 予選にも参加し、自分の技術がまだ未熟なのを実感しつつ、知らない世界を覗けたことも大変大きかったです。
今年ももちろん VJ をより一層頑張っていきたいのに加え、 4月から社会人になりますのでそちらでも成長していきたいと思います。
2017 年度お世話になったイベント
日付 | イベント名 or ハッシュタグ | 会場 | 出演形態 |
---|---|---|---|
1/22 | 良い曲 | 早稲田 茶箱 | 個人 |
1/25 | アイドルVJ | 渋谷 Camelot | 個人 |
5/6 | Happiness | 武蔵小杉 AlphaCross | 個人 |
5/27 | #アジアニ 3 | 渋谷 Clubasia | 個人 |
6/10 | #揺らす | 中野 Heavysick Zero | 個人 |
7/22 | IMAP++ #imappp | 渋谷 WhiteSpaceLab | 個人 |
8/5 | アイドルVJ | 渋谷 Camelot | 個人 |
9/10 | VJ体験交流会 | 東心斎橋 Libera | 客 |
9/24 | #NNG01 | 青山 fai | 個人 |
10/07 | DefDistortion 42 | 渋谷 R-Lounge | SabaLeoN として |
10/09 | アイドルVJ | 渋谷 Camelot | 個人 |
10/27 | #アジアニ 4 | 渋谷 Clubasia | 個人 |
11/3 | DefDistortion #43 | 渋谷 R-Lounge | SabaLeoN として |
11/3 | GOTTA VISION #ごった | 新大久保 UniqueLaboratory | 個人 |
11/4 | #しなすたリリパ | 渋谷 nagomix | SabaLeoN として |
11/9 | #アパチュナ | 渋谷 nagomix | 個人 |
11/11 | BunGeee☆ 50 | 京橋 Beronica | 個人(飛び入り) |
11/22 | Re:animation 11 | 新木場 STUDIO COAST (ageHa) | SabeLeoN として |
11/25 | #dolive 03 | 渋谷 LoungeNeo | 個人 |
11/26 | Supersonic | 渋谷 WOMB | SabaLeoN として |
12/02 | DefDistortion #44 | 渋谷 R-Lounge | SabaLeoN として |
12/10 | アイドルVJ | 渋谷 Camelot | 個人 |
12/16 | ravish 10 #ravish | 渋谷 R-Lounge | 個人 |
12/22 | Supersonic Next | 渋谷 R-Lounge | SabaLeoN として |
12/31 | Weekend Ravers NYE #wrnye | 渋谷 Clubasia | SabaLeoN として |
イベントの主催者様出演者様、スタッフ様お客様に大変お世話になりました。本当にありがとうございました。
2018年もどうぞよろしくお願いいたします! VJ オファーお待ちしております!
Case-sensitive な macOS 上で Cinder のビルドにコケた話
ご無沙汰しております。
最近 macOS 10.12 をクリーンインストールする機会があり、もちろん SSD も綺麗にフォーマットしたわけですが、 今まで見落としていたのか「Case-sensitive」(日本語: 大文字/小文字を区別) というものに興味を惹かれて有効にしてみました。
そしたらまさかの Adobe ソフトがインストールできないとまぁ大笑いだったわけですが。
「大文字と小文字が区別されるドライブへのインストールはサポートされていません」エラー
Mac で Illustrator が使えないのは辛いですね・・・。
Cinder のビルドができない
openFrameworks のライバル(?) である Cinder というものがあり、 公式サイトから既にビルド済みのパッケージをダウンロードすることができますが、 Github 上のリポジトリからソースコードをクローンしてきて CMake でビルドすることもできます。
ところがいざビルドしようとすると、CMake が以下のようなエラーを吐いて止まってしまいます。
CMake Error at proj/cmake/libcinder_target.cmake:14 (add_library): Cannot find source file: path-to-libcinder/src/AntTweakBar/TwOpenGl.cpp Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp .hxx .in .txx
src/AntTweakBar/TwOpenGl.app
が見つからないって言っていますね。
では src/AntTweakBar
ディレクトリを見てみましょう。
なんと TwOpenG"""L""".cpp
という名前で存在しています。
おそらく開発陣が CMake ファイルを作られた時に TwOpenG"""l""".cpp
と誤植 (と言えるのか) してしまったのかと思われますが、
普通の macOS なら Case-Insensitive (大文字/小文字を区別しない) 環境で動かしていると思いますし、
ビルドに失敗することもなかったのでしょう。実際僕も以前ビルドした時にはこんな問題は起こらなかったです。
Issue を書き込みました。
ぶっちゃけこれが言いたかっただけなのですが、この件は一応 Issue を投げました。
まぁファイル中の 1文字を直すだけなので、手元にクローンしたやつを書き換えるだけでとりあえず対応はできていますけどね。
まとめ
Case-sensitive なディスク上で macOS を動かすとたまに不便になります。
話が逸れますが、Docker for Mac で 大文字小文字の区別関連で苦労されてる方もいらっしゃるようですね。
こちらは Case-sensitive な方が良いというパターンですので、一概に Case-sensitive はダメ、とも言い切れないですね。
告知など
いつも通りの唐突な告知です。以下のイベントで VJ で出演いたします。
#アジア二 第4期
GOTTA VISION
また、この度 VJチーム SabaLeoN に所属することになりましたので、 SabaLeoN メンバーとしても各所に VJ しに行きます。
何卒よろしくお願いいたします。
Capistrano3 でリモート側の環境変数設定されてないなって思ったら
どうでも良いことで 2時間くらい食って悔しかったのと日本語記事がなかったように思えたので書きなぐりました。
症状
Capistrano でデプロイ先で、.bashrc
に書いた環境変数が設定されないまま処理が行われてしまう。
対処
以下の Stackoverflow に答えがありました。
デプロイ先の .bashrc
なりシェルの設定ファイルの先頭に
# If not running interactively, don't do anything
みたいなコメントと、その直後に return
してそうな箇所はありませんか?
Ubuntu など一部のディストリビューションのシェル設定ファイルの先頭には「インタラクティブシェルじゃないならこの後の設定は読み込まない」ような記述がされていることがあるため、その記述をコメントアウトするなりその記述の前に設定を書くなりの対策をとれば良い感じになると思います。
AmazonLinux だとそのような記述がなかったから完全に見逃してた・・・。
flycheck で走らせるプログラムを探すのに direnv に手伝わせる時の注意点
挨拶
またしても前回の投稿から間が空いてしまいましたが、なんと就活が終わっていたり 大学院を中退していたりと色んなことが起こりました。ひと段落したので VJや動画制作やWebデザインなど、もっと取り組んでいきたいと思います。
flycheck が使う文法チェック系プログラム
Emacs でリアルタイムに文法チェックを行うのに便利なのが flycheck
ですが、
flycheck
自体がコードを調査しているのではなく、rubocop
やら eslint
やらを
実行しているのはご存知かと思います。
それらのプログラムはどのように探されているかというと、シェルが $PATH
から
プログラムを探すように、Flycheck は Emacs 上の変数 exec-path
から探しています。
公式ドキュメントにその記述があります。
また、exec-path
の中身は
M-x describe-variable RET exec-path
で見ることができます。
direnv を使ってプロジェクト毎の文法チェックプログラムを探させる
少し話が逸れますが、eslint
だったり rubocop
と言った文法チェック系のプログラムは、
なるべくグローバルにではなくプロジェクトのディレクトリ内に置いときたい派です。
なんとなくなのでちゃんとした理由があるわけではないです。
なので、例えばNode.js 系のプロジェクトなら npm
で eslint
を導入すると、
node_modules/.bin
ディレクトリに実行ファイルが置かれるような状態です。
普通はそのようなディレクトリには $PATH
が通ってませんが、direnv
を使えば
プロジェクトのディレクトリ下に入った時だけ $PATH
にそれらを含めることができます。
.envrc
というテキストファイルをプロジェクトのルートディレクトリに置き
export PATH="node_modules/.bin:$PATH"
と記載してやると良い感じになります。細かい話などは割愛しますので調べてみてください。
そして、普通シェルから立ち上げた Emacs は $PATH
から exec-path
に値が丸写しされますし
(GUI の場合は exec-path-from-shell
というパッケージが要るそうです)、
direnv
管理下のファイルを Emacs で開けば .envrc
に書かれた内容も
もちろん exec-path
に反映されています。
.envrc での $PATH の追加の仕方に注意
ただし、上記の export PATH="bin:$PATH"
のように相対パスで指定すると、実はうまく動かない時が出てきます。
例えばファイル構成が以下の場合を想定します。
- /your/great/project/.envrc
- /your/great/project/node_modules/.bin/eslint
- /your/great/project/code1.js
- /your/great/project/nested/code2.js
.envrc
には
export PATH="node_modules/.bin:$PATH"
が記載されています。
このとき、Emacs で /code1.js
を編集しているときは $PATH
に従って /node_modules/.bin/eslint
を見つけにいきますが、/nested/code2.js
を編集しようとすると /nested/node_modules/.bin/eslint
を探しに行こうとして見つからずに失敗します(多分そうだと思います)。
なのでEmacs の flycheck を利用する場合は $PATH
は必ず絶対パスである必要があります。
PATH_add で楽して絶対パスを指定する
では .envrc
には必ず絶対パスを書く面倒なことをしなくちゃいけないのかというとそうではなく、
PATH_add
という便利機能が備わって要るので、それを使いましょう。
PATH_add node_modules/.bin
これによって $PATH
には /your/great/project/node_modules/.bin
のように
絶対パスで追加されます。
結論
プロジェクトディレクトリ以下に文法チェック系のプログラムがあり、
かつ flycheck
にそれを見つけさせるために direnv
を使う場合は、
PATH_add
を使った方が良いと思います。
告知
5月中に 2件VJやります。
初めて学外でVJやった 武蔵小杉アルファクロス 様でまたVJできるのとても楽しみです。 エイジアも2回目になります。前よりゴリゴリ視力削っていきたいです。
お時間あれば何卒よろしくお願いいたします。
MacBook Pro Late-2016の画面出力について
そろそろ収まってきた頃だと思いますが、MacBook Pro Late-2016、すごいTwitterとかで話題になりましたよね。 そんな TouchBar 付き MBP ですが、直前の記事に書いた通り先月購入し、VJ用に整えている最中です。
ですが、最近 USB-C → HDMI アダプタを使っての画面出力がどうにもうまくいかないので、 原因の特定には至ってませんが気になる英語の記事を見かけたので、軽くまとめます。
画面出力の不具合
僕が使っているのはこの ELECOM の製品なんですが、初めの頃は問題なかったのですが、 現在以下のような現象が起きています。
- プロジェクターに直接 HDMI を接続しても、Mac 側はプロジェクターを認識しているものの、プロジェクター側は「映像が来ていない」と思っている。
- HDMIを Blackmagic design Intensity Shuttle (HDMIキャプチャ) に接続させると、キャプチャ側で映像のサイズやフレームレートは認識できるのに青い画面しか見れない。
- 分かる人には分かる魔法 (Kanaan の HDMI スプリッター) を経由するとなぜかキャプチャ側で映像が映るようになる。
まさか常時 HDMI 出力に HDCP かかるようになりましたとか、そんなことはないですよね・・・。ていうかプロジェクター HDCP 対応してるでしょ(してた)。 そもそも、初めの頃普通に表示できていた理由もわかりません。
「Late-2016で USB-C to HDMI はやめとけ」という英語の記事
情報を探していましたが、直接の解決策となる情報は見つからず。 ただ、
こちらの記事に興味深い情報が書いてありました。要点をまとめると、
- サードパーティーの USB-C to HDMI はまともに動かない (ただし Mac はディスプレイを認識できている)
- そもそも Apple 純正の USB-C to HDMI すら動かない
- USB-C to DisplayPort はしっかり動くので、今は DisplayPort の方をつかうべき
ただ、この方は Radeon 入り 15インチ MacBook Pro なので、僕の13インチ内蔵フラフィックスとは状況が違うかもしれません。
結論
VJするには非常に面倒なマシン買っちゃったかも・・・。 原因がわからないのが辛いですが、前述の通りなぜか魔法を使うと映るので、しばらくはそれで対処しようと思います。
追記
この記事を書いた直後にこんな追記するものアレなのですが、以下の構成でふっつーに出力できました。まじなんなん・・・。
MacBook Pro → Elecom の USB-C to HDMI → HDMI to DVI ケーブル → BenQのディスプレイ (GL2250)
今後のVJ機器の構成を妄想
賀正
2017年
またしても前回の記事から時間が経ってしまい、気づいたら年が変わりました。 明けましておめでとうございます。 今後とも何卒よろしくお願いいたします。
大学院の方は相変わらずの進捗の悪さに定評がありますが、そろそろ覆したい気持ちです。
そしてVJですが、環境とか手元にあるリソースが大きく変わったので、 自分のやり方を維持しつつ構成をアップグレードしたいなという妄想をしたかっただけです。
ちなみにこの記事を書こうと思った発端は以下の通りです。
プロジェクター ← Resolume Arena (ThinkPad, Intensity Shuttle) ← V-1HD ← VDMX (MacBook) + VirtualDJ (ポンコツPC)
— Yadex205 (@yadex205_vj) 2017年1月5日
っていう頭悪い構成思いついてしまった
構成の妄想
実は1月2日にVJ新年会というとても楽しい会があって、その時にVDMXを買ってしまったのですが、 パッと見自分のやり方に実は合ってる気がしたので、極めようと思っています。
その上で、今まで VVVV + V-4 でやってきたのに近いプレイを MacBook Pro + VDMX でやろうと考えています。
ThinkPad の方では VirtualDJ をメインで動かそうと思います。 そしてVDMXとVirtualDJの出力をミキシングし、最終的なエフェクトをかけ、プロジェクションマッピングするソフトとして Resolume Arena は使っていきたいです。
ちなみに、MacBook Proの方でVDMXとArenaを両方起動したところVDMXがかなり怪しくなったので、 できることなら同時起動させたくないなと思いました。
自分のVJ環境の変化
一応参考程度に、覚えている範囲で。
大学サークルでVJ (2014年9月ごろ~)
軽音楽系のサークルで、先輩がDJしている隣でVJをはじめました。
PCは ThinkPad E430、完璧にエントリーモデルなノートパソコンです。 ソフトは Resolume Avenue をしばらく体験版状態で使い、 途中からちゃんと購入して使っていました。
コントローラーも途中からド定番 nanoKontroller2 と nanoPad2 を買って、今でも使っています。
学外でVJ活動開始当初 (2015年10月ごろ~)
ライセンスBANされた Resolume Avenue を1回だけ使い、 そのあとは VVVV を使ってでっち上げたVJソフトもどきで何とかしのいでいました。
結局ここから1年間くらい VVVV だけでVJしていました。(何回かElectronで作ったソフトも使いました)
なお、コントローラーも AKAI APC mini を新しく買いました。
V-4 入手 (2016年4月ごろ)
諸事情あって、夢の Roland V-4 を入手しました。
例のVJソフトもどきはエフェクトをかけられるように実装していなかったので、 V-4を使ってチカチカするようなVJができるようになってかなり楽しくなりました。
自分がプロフィールに書いてる「目に悪いVJをしています」感じのスタイルはこのあたりで出来てきたのだと思います。
Pioneer DDJ-RB, GoVJ 購入 (2016年8月ごろ)
ニコル君と話していたら気づいたら買っていました。
同時に、VirtualDJ と GrandVJ を組み合わせたようなソフトを作ってみたいと思うようになって、 Electron(Node.js)でVJソフトもどきを作り、DDJ-RB, nanoKontroller2に対応させました。
ちなみにソフトの完成度はファッキンと言ったレベルです。
また、GoVJという iOS 向けVJアプリを購入し、 ThinkPadで動いてるVJソフトが死んだときの応急処置として用意するようになりました。
Resolume Arena, VirtualDJ 購入 (2016年11月)
ブラックフライデーに合わせて、再び Resolume 製品を買ってしまいました、しかも Arena です。 買ってしまったというか、某VJさんにそそのかされて買いました。
また、それとは別に VirtualDJ を購入し、いわゆるアニソンVJのようなスタイルもできる準備はしました。
VVVVでやってた頃とは違ってスタイルがある程度制限されるようにはなりましたが、 やはり有償ソフトならではの安定さと、特に Resolume のエフェクトの豊富さは使っていて気持ちいいです。
MacBook Pro 購入 (2016年12月)
念願のMacBook Pro を購入しました。 ThinkPadを使っていた時よりは確実に性能が良くなりましたし、Syphonが使える強みもあります。
最後に
VJ新年会本当に面白くて、「V-4EXのなる木を育てたい」とか「粉チーズを肥料にしたらV-1HDが成る」みたいな話をしていました。
— Yadex205 (@yadex205_vj) 2017年1月3日
本年も、何卒よろしくお願いいたします。V-1HD欲しい。
Flycheck の In file included from 警告を消す
備忘録です。
謎警告
最近 emacs で Node.js のネイティブモジュールを書いてみたり、
Qtアプリケーションを作ろうと頑張っているのですが、
#include
文のところで Flycheck に こんな警告をよく吐かれていました。
In file included from In file included from In file included from In include /usr/local/opt/qt5/include/QtWidgets/QApplication
・・・そもそもこれエラーなのか何なのか。
原因
どうやら flycheck のバグだとか何だとか言われていて(某所だとパースエラーだとか)、 flycheck の警告文からでは何が問題なのかがわかりませんでした。 なので、flycheckがどのようなコマンドを叩いて、どのような結果を得ているのかを どうにか見れないか調べてみました。
色々調べてみたところ、
に書いてある通り、C-c ! C-c
を叩くことで、実際に実行されているコマンドと
実行結果(解析結果)の全文を見ることができます。
結果
で、やってみたところ
1*- mode: compilation; default-directory: "(省略)" -*- 2Compilation started at Tue Nov 8 15:04:30 3 4clang -fsyntax-only -fno-color-diagnostics -fno-caret-diagnostics -fno-diagnostics-show-option -iquote (省略) -Wall -Wextra -I (省略) 5In file included from <stdin>:1: 6In file included from /usr/local/opt/qt5/include/QtWidgets/QApplication:1: 7In file included from /usr/local/opt/qt5/include/QtWidgets/qapplication.h:43: 8In file included from /usr/local/opt/qt5/include/QtCore/qcoreapplication.h:43: 9/usr/local/opt/qt5/include/QtCore/qglobal.h:1133:23: warning: rvalue references are a C++11 extension 10In file included from <stdin>:1: 11In file included from /usr/local/opt/qt5/include/QtWidgets/QApplication:1: 12In file included from /usr/local/opt/qt5/include/QtWidgets/qapplication.h:43: 13In file included from /usr/local/opt/qt5/include/QtCore/qcoreapplication.h:43: 14In file included from /usr/local/opt/qt5/include/QtCore/qglobal.h:1145: 15In file included from /usr/local/opt/qt5/include/QtCore/qatomic.h:46: 16/usr/local/opt/qt5/include/QtCore/qbasicatomic.h:61:4: error: "Qt requires C++11 support" 17/usr/local/opt/qt5/include/QtCore/qbasicatomic.h:90:13: error: unknown type name 'QAtomicOps' 18/usr/local/opt/qt5/include/QtCore/qbasicatomic.h:90:23: error: expected member name or ';' after declaration specifiers 19/usr/local/opt/qt5/include/QtCore/qbasicatomic.h:93:23: error: use of undeclared identifier 'QAtomicOpsSupport' 20/usr/local/opt/qt5/include/QtCore/qbasicatomic.h:93:53: error: no member named 'IsSupported' in the global namespace 21/usr/local/opt/qt5/include/QtCore/qglobal.h:761:63: note: expanded from macro 'Q_STATIC_ASSERT_X' 22/usr/local/opt/qt5/include/QtCore/qglobal.h:756:110: note: expanded from macro 'Q_STATIC_ASSERT' (以下略)
なるほど、原因はC++11
絡みのところにあったらしいです。
何が原因かというと、C++11
に対応していない状態で flycheck を動かしていたということでした。
上記によると、emacs の設定ファイルに
(add-hook 'c++-mode-hook (lambda () (setq flycheck-gcc-language-standard "c++11")))
を追加することで、flycheckが C++11
に対応してくれるようです。
私の環境でもこれで治りました。
結論
Flycheck の謎警告に困ったら、 C-c ! C-c
を見てみましょう。