タイトル

Need for Answer

2019年6月19日水曜日

suの実行コマンドを動的に生成したい

suでコマンドを実行するとき…ありますよね。「動的に実行コマンドを作成したい」という要望があると思います

結論だけ言うと、suコマンドに環境変数を引き渡せばできます。

以下サンプル
#!/bin/sh
MSG="/usr/bin/screen -S mc -X stuff \"say $@\""
su execuser --preserve-environment -c "${MSG}"

2018年6月29日金曜日

AWS EC2のタグからホスト名を変更したい(AmazonLinux2/CentOS7)

EC2のNameタグについてる名前をHostnameにするコマンドです。
CentOS7及びAmazonLinux2でのコマンドになります
AWSコンソールで名前をつけたあと、実行するといいんじゃないでしょうか

INSTANCEID=`curl -s http://169.254.169.254/latest/meta-data/instance-id/`
Name=`aws ec2 describe-instances --region ap-northeast-1 \
             --instance-ids ${INSTANCEID} \
             --output text \
             --query 'Reservations[].Instances[].Tags[?Key==\`Name\`].[Value]'`
sudo hostnamectl set-hostname ${Name}
hostname

2018年6月28日木曜日

Elastic Load BalancingのCLBとALBは何がちがうのか(TCP的に)

ALB使ってますか!
正直CLBで良いんじゃない…って人、多いと思います!

CLBはL4でALBはL7…とか色々あると思いますが、あまり注目されてないポイントとして「TCP Keepaliveされるか?」というのがあります

[ユーザー]-[ELB]-[APサーバー]

という構成があるとします。

[ELB=CLB]
ユーザーアクセスが終了したあと、ELB-APサーバー間で数秒間TCP Keepaliveされます。正確に言うと「ESTABLISHED」のままになります。これはHTTP/TCPどちらで死活監視しても一緒です。

[ELB=ALB]
ユーザーアクセスが終了したあと、即時に「TIME_WAIT」に移行します。

これによって何が違うのか?というおはなしなのですが、APサーバーがdjangoやrailsのようなアプリケーション・サーバーの場合に非常に困ることになります。

ユーザー通信が終了しているにもかかわらず、そのプロセスがCLBのKeepaliveによって開放されないため、次の通信に即時に使えない状態になります。それが積み重なった結果、APサーバーのプロセスがCLBによって使い潰されます。

要は『ECSのバランサーにCLBを使わないほうがいい』というおはなしです

2017年11月13日月曜日

『Editors' Lounge #11 〜「けものフレンズ」と「DOMMUNE」の編集メソッド』の議事録

概要

平成29年11月11日 13:30〜18:00
御茶ノ水デジタルハリウッド
URL: Editors’ Lounge #11 〜「けものフレンズ」と「DOMMUNE」の編集メソッド

注意

フリートークスタイルで進んでいったので、話の基点からずれていったりしてます。
そういうものだと思ってください

第1部

福原慶匡×福岡俊弘

  • デジハリの大学院生
  • 横浜のDMM VRシアターも手がけている

プロフィール

大学時代 川嶋あいと出会いレコード会社を作った
4年前に家族にショッキングな出来事があって友人宅に転がり込む生活→そこでアニメと出会った
音楽を通じて秋葉原中心にアニメの仕事をしていた
ニコニコ動画を通じてクリエイターと出会い、創作活動を続ける
アニメの作り方を知らなかったので、本を読んだりググったりしてた
ニコニコ動画での活動から日テレから声がかかり、作品をつくることに→手さぐれ部活ものを作成
たつき監督とはTwitterで連絡を取り、コミケで出会った

運が良かったと思うので、「経験を言語化していきたい」と考えている

けものフレンズ

うちでPVを作ったら決まった(要はコンペ)
CGが良かったのは、動物の柄を省略することがなかったこと
演出・表現が良かったのでは無いだろうか
エンディングをちょっとづつ変えるとかの小ネタがすき(監督のアイデアだけど)

プロデューサーと監督との関係は

ヤオヨロズは一人で複数のポストを担当する(原画・動画・編集等)
作業を別人に渡すことが無いので、中間成果物を出力する必要がない
├事務的な手間が省ける
└最終形が見えているので効率が良い

アニメ作成作業は下記3点で遡ることができない

  • お金
  • 時間
  • 仁義

「監督がNGを出し、自分で修正作業する」は問題がない。アジャイルな作り方
本当はこんなことしたくないし、休みたい(笑)
やりたかったというより、この方法しかなかった
客観的にみて良い方法かは、前例が無いので判断できない

シナリオってどうやって精査したの?

普通は本読みを積み重ねて、スタッフ間で意識を共有する

「キャラクタから発信」と「ストーリーから発信」するもので、シナリオ作成のアプローチが変わる
テンプレートストーリーはキャラベースになる(こち亀とか)
ストーリーものはテキストベースだけで完結しがちである。特にゲーム系シナリオとか

アニメシナリオは、映像を足す隙間が重要
要はギャグのリアクションを文章で説明しても、面白さは伝わらない

何を見せるのか?見せないのか?
声優の伸びる声(音)を聞いて、セリフを調整したりもする

ここまでイメージできる人っていないと思う
それをできる人に全権を渡したいと思う

世間の反応について

監督が世捨て人みたいになってたので、世間の人気の実感がなかった
ラッキーパンチは無く、狙ったところにハマった感
ですが、その穴にハマる人が想定より多かった印象
びっくりしているのは監督より、周りの人たちだった

監督がニコニコ動画に自主制作アニメを毎月投稿している
数年続けており、けものフレンズを見る視聴者の反応が前もって予想できていた

視聴環境の変化について

シークバーによって、昔より2度見が簡単になった
ニコニコ動画で、他人の反応を確認しやすくなった

視聴者が「コメントを打ちたいタイミング」で間を作っている
音楽業界ではスピーカーではなくイヤホンで最終マスタリングしている
それと同じように、「ユーザーの視聴環境に合わせたものづくり」をしている

けものフレンズは、メディアやソーシャルに向いていた

  • 自分だけが気がついた(アハ体験)
  • それを共有発信したい(ソーシャルバズ)

監督と視聴者とのインタラクションが発生していた
そういった意味では、「ヤオヨロズが劇場アニメをヒットさせられるか」は課題だと思う

定性的価値と定量的価値

監督が相当先を考えているので、周囲との理解にディレイがある
「理解できていないけど現象が起きている」ので、周囲が納得している状態

一発目のひらめき・アイデアがすごい
たつき監督は元サンライズ

「これからのビッグヒットはこうなっていくのでは?」と考えている(定性的・定量的価値を備えている事)
定量的な価値がないと一般には広がらない(「けものフレンズ第一話1000万回再生!」とか)

例えば「けものフレンズの面白さは?」を他人に説明するのは難しい
「定性的価値を伝える方法」が課題

放送前にはたつき監督しかわかっていない状態
面白さをつたえるのは難しい・言語化できないので、定量的な物言いが重要

ハードの進化は人間の感性以上のものを作ることができず、限界がある
音や映像を良くしていっても、人間の能力に限界がある

商品の価値を高めるには、クリエイターが重要になってくる

ソフトの重要性をわかっているのがクリエイター
クリエイターの価値を伝えていくのがプロデューサー

米国はプロデューサーを育てる環境が充実している
日本はクリエイターは素晴らしいが、プロデューサーがポンコツ

ラブ米

売上はアレだが、IP的価値が高い作品
農林水産省やおにぎり協会、農協がスポンサードしてくれている
舞台やゲーム化も進んでいる
友人のボツゲーム企画がスタート
企画が通った話をエイプリルフールに伝えたので、全然信じてもらえなかった

音楽業界のはなし

水曜日のカンパネラのプロデュースもしている
音楽は色々なメディアにくっつきやすい
音楽の権利は難しい
大学在学中に初めて作ったのが権利会社で、JASRACと交渉したりしていた

アニメは二億五千万くらい制作費がかかる
音楽は制作費が安くなった。発信も簡単になった

音楽業界は映像業界の五年くらい先をいっている印象がある
映像は作るのが大変で、人数も必要
そういったムーブメントの中で、映像を有効活用する流れからYouTuberがうまれたんだと思う

音楽業界はデジタルによって簡単になり、制作コストもどんどん下がっている
ボーカルだけ大変だったが、初音ミクが発生した

デジタル化について

配信も、CDからデジタル配信に移っていった
世界2位の音楽業界なのに、日本はほぼCDの売上
アメリカはほぼ配信しかない
日本は音楽業界でもガラパゴス化が進んでいる

これをアニメに当てはめると、作画部分がデジタル化されていくと思う
今でもアニメ業界は紙文化なので、制作進行がアニメーターの作画を回収する仕事がある
だが、ヤオヨロズには制作進行が居ない

アニメ流通もデジタルに移行しているが、まだテレビで見る文化
フィジカルを借りる部分が多い

便利すぎたがゆえに、デジタルへの移行が進んでいないのでは
もう少しデジタルがすすむと、世界につながりやすくなると思う

テレビを中心にすると、総務省とつながるので著作権管理が楽
放送は免許事業なので、テレビという枠に縛られる

「日本でインターネットで面白いこと」をしづらい状況になっている

放送権利について

テレビ会社は、製作委員会に出資するだけで、テレビ放映権利も主題歌の音楽利用も海外への番組販売も権利を握っている。職権乱用っぷりがひどい。

頑張ったクリエイターにお金が渡る仕組みを作っていきたい
生活のためにやりたくない仕事をすることで、メインの仕事のクオリティが下がる
クリエイターがいい仕事をすることで、業界全体が潤うと考えている

天才に時間と金を与えると、勝手に面白いものをつくる
金があるからサボる人間は、天才ではない

契約は業界慣習がつよい
原盤権とか
(※注:このあたりは音楽権利関係の話が続いたので、割愛)

質疑応答

けものフレンズの今後について

途中報告もしたいのだが、大決定が出るまでは何もできない状況
「どのようにお伝えするか」も込みて協議中
まだ交渉段階なのでお待ちください
自宅前に週刊文春の記者がいてびっくりした

外部の交渉方法については

話し合いながら作っていっただけので、特にロスらしいロスもなかった
元がオリジナルなので、ロスよりも付加される情報が多かった

背景イラストレーターがほしいといった意味は

感性の合うチームを集めると、コミュニケーションロスが減る
時間のあるうちにスタッフを集めておきたいが、固定費が増えるのは悩み

業界の慣習にとらわれなかったのが成功の秘訣?

たまたまはまっただけで、失敗する人もいる

クリエイティブもビジネスもわかるプロデューサーがいないのが問題
会社で別れているのが問題 クリエイティブは制作会社・ビジネスは製作委員会
制作会社がビジネスを勉強していないのも問題だと思う

良いものを作るには

チーム作りが重要
アニメは制作に2年かかる
プロデューサーは、「仕事の割り振り」の責任が大きい
プロジェクトの大きさによって、人を見る目をチェックポイントを変えている

まとめ

けものフレンズは新しいメソッドで作られた
先行者メリットが発生しやすい

海外をみているが、「日本で作っているものが悪い」わけではない
ターゲットの狙い方が問題
バイリンガルよりバイカルチャーが重要
今後人工知能の同時通訳によって、言語の壁が取り払われる可能性がある

第2部

宇川直宏×高橋幸治

DOMMUNEの活動およびカウンターカルチャーについて
画像に対する解説が多いので、議事録はなしで

2017年9月15日金曜日

nintendo switchのLANプレイの注意点

LANプレイしてますか!

要は複数台のnintendo switchを有線LANで繋いで、ローカル通信で快適に遊んじゃお!というものです。Splatoon2だと「観戦モード」という、LANプレイでしか操作できないモードもあるんですよ。

…なのですが、このLANプレイのハマりどころがあります。それは

「無線LANがつながる環境だと、有線LANより優先される」

です。要は「LANプレイをするときは、無線LANにつながらないようにしておきましょうね」ということです。やり方は下記2つ。

  1. 無線LANのパスワードを変更・または削除
  2. 機内モードにする
機内モードにすると、無線でコントローラが繋がらなくなるのでご注意ください。

Switch-Fightstickの注意点

Switch-Fightstick使ってますか!要は「USBジョイスティックのふりをして、Splatoon2のドット打ちを代行してくれる」ってプロジェクトです。

Windows環境でのインストール方法は「Splatoon2で自動ドット打ちしてくれるやつ試した」にて素晴らしくまとまってます。ありがたや

…3つほどハマったポイントがあったのでご紹介しておきます

1・makeが動かない
make: Interrupt/Exception caught (code = 0xc00000fd, addr = 0x4217b3
「make -v」は動くのに、「make」だと上記のエラーを吐いて動かない。これは、makeの参照するPATHの中に「()」等が含まれているとなります。(例:c:\Program Files(x86))

下記2つの注意点を守れば大丈夫です。デフォルトインストールしたなら発生しない問題です。
  1. makeをインストールするフォルダにスペースやカッコを含まない所に入れる
  2. windowsのPATHの先頭に、「makeをインストールしたフォルダ」を追加
参考:
make: Interrupt/Exception caught (code = 0xc00000fd, addr = 0x4217b3 | HDRLab :


2・PILのエラー
ImportError: No module named PIL
このエラーはPythonモジュールが不足で発生します。下記コマンドを入力してください。
pip install image

3・make中にエラー
C:\Program Files\Git\bin\sh.exe: *** Couldn't reserve space for cygwin's heap, Win32 error 0
Windows8以降で発生します。このファイルをダウンロードして、「"C:\WinAVR-20100110\utils\bin\"」に入れてください(デフォルトインストールの場合)

参考:
Arduino Playground - Eclipse

2016年4月6日水曜日

NGINX Luaのshared dictionaryの使用容量を調べたいのまき

nginx lua使ってますか!
worker間でメモリ共有するのに、shared dictionary使いますよね!

こんな感じで定義します
http {
        lua_shared_dict HOGE 30m;
}

…なのですが、これって実際どれくらいメモリ確保すればいいのかわかんないですよね。
ということで、こちらを調べようという話です。agentzh氏が作ってくださったngx-shmを使います。

まずはnginxのworkerのプロセスIDを調べます。masterじゃないですよ、workerですよ!

#ps aux | grep nginx
root     46581  0.0  0.0 103304   856 pts/0    S+   12:50   0:00 grep nginx
root     56272  0.0  0.1 118384 19492 ?        Ss   Mar30   0:00 nginx: master process
nobody   56273  2.2  0.7 215004 125824 ?       S    Mar30 180:48 nginx: worker process
nobody   56274  2.2  0.6 191208 102056 ?       S    Mar30 182:14 nginx: worker process
nobody   56276  2.2  0.6 195812 106524 ?       S    Mar30 181:37 nginx: worker process
この場合56273ということがわかりましたので、このPIDをngx-shmに渡します。こんな感じです
#./ngx-shm -p 56273
Tracing 56273 (/usr/local/openresty/nginx/sbin/nginx)...

shm zone "HOGE"
    owner: ngx_http_lua_shdict
    total size: 3072 KB

Use the -n <zone> option to see more details about each zone. 30 microseconds elapsed in the probe.
これだと確保容量だけしかわからないので、メモリ使用量の詳細を調べます
#./ngx-shm -p 56273 -n HOGE
Tracing 56273 (/usr/local/openresty/nginx/sbin/nginx)...

shm zone "HOGE"
    owner: ngx_http_lua_shdict
    total size: 30720 KB
    free pages: 27912 KB (6978 pages, 176 blocks)

32 microseconds elapsed in the probe handler.
これが調べたかった結果です!メモリ確保しすぎですね!