Knowledge for WordPress

Knowledge for Google Products

2020年8月7日金曜日

Quora 日本語版 World Meetup 2020 に参加して(オンライン) #quora #meetup


ミートアップ風景

*ミートアップで紹介されたリンクは末尾に関連リンクとしてまとめておきます。それも興味をそそる質問や回答ですよ!

Quora スタッフアップデート(スペース)をフォローしていることもあり、Quora 日本語版ワールドミートアップ2020 のことを知り得て、早速参加申し込みをしました。

World ミートアップは 世界中の Quora Meetup を定められた期間内に一斉にやるというイベントです。日本では昨年から始まりました(Quora World Meetup 2019 に参加してきた!)。昨年は六本木のいいところだったのですが、残念ながら今年は新型コロナウィルの影響もあり、オンライン(Zoom利用)の実施になりました。

開催が近づくにつれ、様々な投稿がされていきミートアップが終わったら削除すると書かれている、Zoomの使い方やブレークアウトルームでどういうことをするのかなどのアジェンダがありました。

時間が19時〜ということで、オンライン飲みニケーションをしながら、ミートアップをしようということですね!実はオンライン飲みニケーションはこれが初めての体験なのでした。

バーチャル背景も Quora から提供されたものに、ラオスのメコン川をバックにとった写真を右上に載せておきました。

ブレークアウトルームで自由にやりとり




今回の特徴は、ブレークアウトルームでの少人数やりとりでしょう。ランダムで分かれるということで、今回は6名のグループになりました。
「ブレークアウトルームでなにするんだったっけ?」「Quoraスタッフアップデート(スペース)に載ってたよ〜、チャットにURLいれた」なんてやり取りから始まって、自己紹介をしたのち、様々な話をしました。
特に今回は Quora に参加して一週間という方もいて、今回のミートアップ告知は気合が入っていたのかなと皆で感心したものです。
またなんと、6名中5名が関西出身、となるとアレですよ、アレ!「はんなり上方弁」(スペース)への誘いを忘れてはなりませんね!

ブレークアウトルームで印象に残ったこと


  • 自分で質問して、自分で回答してよい
これは筆者が伝えたことです。
  • Quora 日本語版では、まだあまり見ない質問
  • 質問したけれど回答がなくて寂しい質問
そうした事があった場合、Quoraでの質問に関するおもな規定は? に注意しつつ、自分が詳しく知っている、調べて知識になり得るような回答ができるなら、自分で質問して自分で回答すればいいです。そうすれば、それに関して知識が蓄積され検索にヒットしやすくなり、結果として興味のある人がよって来ることが期待できるかもしれません。そう、「質問はコミュニティー プロパティー (共有財産) です」ですので、Quoraとしてはそういう間口の広げ方もできるんですよね!

筆者の自己紹介


とある大学のとある研究所内のインフラ整備もしつつ、ITマネージャー的な役割もになっている教員。導入したサービス関連や面白そうなコミュニティに関わること、そしてそこから波及する何か新しいことへのチャレンジをすることなどが好きです。

  • Quora歴
     2017年11月に Quora の日本上陸というニュースを見て、面白そう!と思って参加してから 2年半が過ぎました。
  • スペース立ち上げ
    • Quora関連ブログ(Quora イベントや情報についてのリンク集的な位置づけ。もともと個人ブログという機能がQuora にあり、それが廃止されてスペースになったこともあり、こちらに移行している)
    • Google プロダクトについて語ろう!
       Googleプロダクトヘルプコミュニティ(各プロダクトのサポートフォーラム)で、Google Product Experts(Googleより称号付与、主にGmail、Chrome、Googleグループ、アカウント)として活動しており、Quora でもGoogleプロダクトに関する情報共有ができたらよいなと思って作成すたスペース
  • 主なカテゴリー
    • 詳しい分野:電子メール、情報セキュリティ、Gmail、WordPress
WordPress コミュニティでは公式プラグイン開発者としても活動しています。

関連リンク



いずれも物凄く読みやすく、あるいは深い回答のある内容ですよ!
Quora の回答で記憶に残っているもの(何か機会があったら紹介しようかなーとメモしていて、今回機会がなかった内容(備忘録))

IT系エンジニアでもあるので、自分のスキルで検証できそうなものは検証したくなってしまうんですよね。それが回答のモチベーションの大きな要因になっています。

2020年8月7日 @kimipooh

2020年5月11日月曜日

仮想カメラ OBS-Studio + OBS-VirtualCamプラグイン をソースからインストール方法(Mac編)

OBS-Studio + OBS-VirtualCamプラグインを使えば、下記のように遠隔会議システムで利用するカメラで、映像や画像等メディアリソースを合成して仮想カメラとして見せる方法があるようです。うまく活用すれば、プロジェクタに投影したプレゼン資料を、あたかも講師(本人やアバター等)がその場にいて発表しているような合成ができるかもしれません。
そうしたことにどこまで意義があるかわかりませんが、MacでのOBS-Studio + OBS-VirtualCamプラグインインストールは、私の環境では一筋縄ではいかなかったので、インストールについて備忘録を残します。

インストールの流れ


*OBS-VirtualCamプラグインをインストールするためには、OBS-Studio本体もソースからビルドする必要があるようです。試しにバイナリの OBS-Studioに組み込もうと思いましたが、うまくいかず。
基本的には、OBS-VirtualCamプラグイン(Mac版)が置いてある GitHubの Building の通りに進めます。ただし途中でエラーになったりしてうまくいかない場合があります。どういうエラーに遭遇して、どのように解決したのかも含めて説明していきます。

STEP 1. 準備


インストールに必要な、コマンドツール、コンパイルシステムのインストールが必要です。いずれもターミナルアプリ(Macintosh HD > ユーティリティ内)上で操作します。それぞれ参考先のサイトを参考にインストールしてみてください。

1. Homebrew のインストール(Xcode内のコマンドツールも自動的に入る)


2. Git ツールのインストール


STEP 2. OBS-Studio のイントール

以下、青文字の部分が、ターミナルで実行するコマンドです。
これを入れてEnterをプッシュすることになります。
$HOME(/Users/ユーザ名)以下に
obs-studio
フォルダを作って、その中にインストールすると仮定します。

cd $HOME
git clone --recursive https://github.com/obsproject/obs-studio.git
brew install FFmpeg x264 Qt5 cmake mbedtls swig

=== (エラー1)以前から Homebrew を使っていた場合 ===
Error: Permission denied @ apply2files - /usr/local/lib/pcsc/drivers/scmccid.bundle
これは、brew cleanup でエラーがでて途中で止まっています。
https://github.com/Homebrew/homebrew-core/issues/45009 を参考に解決しました。

brew doctor
と診断すると、いろいろ出てきて
Warning: Broken symlinks were found. Remove them with `brew cleanup`:
  /usr/local/lib/pcsc/drivers/scmccid.bundle
という今回のエラーに関係するところが出てきます。

sudo rm  -rf  /usr/local/lib/pcsc/drivers/scmccid.bundle
brew cleanup
でエラーがでないことを確認した上で、改めて
brew install FFmpeg x264 Qt5 cmake mbedtls swig 
でエラーがでないことを確認
========================================

mkdir build
cd build
export QTDIR=/usr/local/opt/qt
cmake .. && make -j

STEP 3. OBS-VirtualCamプラグイン のインストール


$HOME/obs-mac-virtualcam フォルダにインストールされます。

git clone https://github.com/johnboiles/obs-mac-virtualcam.git
cd obs-mac-virtualcam
export OBS_DIR=$PWD/../obs-studio
mkdir build
cd build
cmake -DLIBOBS_INCLUDE_DIR:STRING=$OBS_DIR/libobs -DLIBOBS_LIB:STRING=$OBS_DIR/build/libobs/libobs.dylib -DOBS_FRONTEND_LIB:STRING=$OBS_DIR/build/UI/obs-frontend-api/libobs-frontend-api.dylib -DQTDIR:STRING=/usr/local/opt/qt ..
make -j

=== (エラー2)すでに XCodeをインストールしていた場合 ===
3 warnings generated.
make[1]: *** [src/obs-plugin/CMakeFiles/obs-plugin.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 98%] Built target dal-plugin
make: *** [all] Error 2
'bootstrap_create_server' is deprecated: first deprecated in macOS 10.10

新しいバージョンのXCode にアップデートされていて、一度も Xcodeを開いていない場合に上記エラーになる場合があります。一度アプリケーションフォルダにインストールされている XCodeを開くと、command components 追加を要求してくると思うので、これをインストールします。もし求められなければ、ターミナルより
sudo xcodebuild -runFirstLaunch
を入力して、インストール画面をだしましょう。

そして
make -j
を再度実行します。
========================================

=== (エラー3)下記のエラーになってしまった場合(make -j) ===
make[2]: *** No rule to make target `../../obs-studio/build/libobs/libobs.dylib', needed by `src/obs-plugin/obs-mac-virtualcam.so'.  Stop.
make[1]: *** [src/obs-plugin/CMakeFiles/obs-plugin.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 63%] Built target dal-plugin
make: *** [all] Error 2

cd $HOME/obs-studio/build
make -j

と再度、OBS-Studio をコンパイルしましょう。

cd $HOME/obs-mac-virtualcam
cd build
make -j

と改めて実行してエラーがでないことを確認します。
========================================

最後に、ビルドできたOBS-VirtualCamプラグインを本体のほうへコピーします。
$OBS_DIR は、すでに
*export OBS_DIR=$PWD/../obs-studio
と環境変数として、 $OBS_DIR は、$HOME/obs-studio のフォルダを指しています。

cp src/obs-plugin/obs-mac-virtualcam.so $OBS_DIR/build/rundir/RelWithDebInfo/obs-plugins/
sudo rm -rf /Library/CoreMediaIO/Plug-Ins/DAL/obs-mac-virtualcam.plugin && sudo cp -r src/dal-plugin/obs-mac-virtualcam.plugin /Library/CoreMediaIO/Plug-Ins/DAL

これでインストールは完了です。

STEP 4. 実行してみる


cd $HOME/obs-studio/build/rundir/RelWithDebInfo/bin
./obs

でウィンドウが立ち上がり、ツールにある Start Virtual Camera を選択すると、Stop Virtual Camera に切り替わって起動しているか確認します。

→ 

実際の使い方については冒頭に挙げた
あたりを参考にしてみてはと思います。

2020年5月11日 @kimipooh


2020年2月18日火曜日

【備忘録】PHP7.2.x --> 7.3.14 へのアップグレード(ソースからコンパイル)

PHP のサポート期間について(バージョンごとの一覧表あり)(Qiita)
をみて、PHP 7.2系ってセキュリティサポートが 2020年11月30日なんだよなぁ、別にもう少し後でもいいけど、PHP 7.4 系も出ているし、まずは PHP 7.3 系にしてみるか!ということでやりました。

ローカル環境ではすでに PHP7.3系と7.4系でテストしているので、管理運用している主要なウェブサイトは影響無いことが分かっています。

とはいえ、前回のようにいきなりPHP 7.0.x --> 7.2.7 へのアップグレードをすると、面倒なことが起こる可能性が高いので、まずは1つだけバージョンをあげるかーという感じです。
をみても、特に影響の大きいものはないはず! とはいえ、ソースからコンパイルするので、エラーなくすんなりインストールは出来なかったのでした。まぁ Openssl を標準では使いたくない!ってことで、nginx や postfixは LibreSSLを組み込んでいることがあるのもややこしいところです。

ソースからコンパイルしてインストール


基本的なところは、 PHP 7.0.x --> 7.2.7 へのアップグレード のときと同じです。
./configure に必要なオプションをつけて、

make ZEND_EXTRA_LIBS='-liconv'
make install

で完了。prefixは /usr/local/php-7.3.14 にしているので
/usr/local/php-7.3.14 以下にインストールされます。この時点では既存の PHPには影響しません。

APCu モジュールのインストールと有効化


今回、これがちょっと面倒でした。

cd /usr/local/php-7.3.14/bin
./pecl install APCu

とインストールしようとすると、前回のとき同様エラーになりました。
ただし前回と違ったのは

WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-update pecl.php.net" to update
php: symbol lookup error: /usr/local/php-7.3.14/lib/php/***/openssl.so: undefined symbol: SSL_CTX_set_min_proto_version

というエラーが出たこと。前者は 
pecl channel-update pecl.php.net

として収まりましたが、後者は openssl 絡み(openssl 1.1.0 以上じゃないといけない)なので、そう簡単ではありません。

ということで、前回同様ソースをとってきてインストールすることになりました。

https://pecl.php.net/package/APCu より、5.1.18をダウンロードし

tar -xzvf apcu-5.1.18.tar.gz
cd apcu-5.1.18
/usr/local/php-7.3.14/bin/phpize

のコマンドを実行すると、
Configuring for:
PHP Api Version: 20180731
Zend Module Api No: 20180731
Zend Extension Api No: 320180731
configure.ac:3: error: Autoconf version 2.68 or higher is required
configure.ac:3: the top level

などのエラーがでます。autoconf は yum のパッケージ管理していたので、2.66系なんですよね。仕方がないので、autoconf をソースからインストールすることになりました。

autoconf をソースからインストール


curl -O http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
tar -xzvf autoconf-2.69.tar.gz
cd autoconf-2.69
./configure
./make
./make install

とまぁこんな感じで、/usr/local/bin/autoconf にインストールされます。
yum パッケージのものは /usr/bin/autoconf にあり、PATHの優先度は /usr/local/bin が上なので、autoconf コマンドは /usr/local/bin/autoconf が今後使われることになります。

autoconf -V
autoconf (GNU Autoconf) 2.69

となれば入ってますね。

そして改めて、APCu のインストールです。
apcu-5.1.18 のフォルダに移動し

/usr/local/php-7.3.14/bin/phpize
./configure --enable-apcu --with-php-config=/usr/local/php-7.3.14/bin/php-config
./make
./make install

として、
Installing shared extensions: /usr/local/php-7.3.14/lib/php/*****/
Installing header files: /usr/local/php-7.3.14/include/php/
と出てきたら、インストール出来ていることになります。

次に APCu が php に組み込まれているか確認します。

/usr/local/php-7.3.14/bin/php -m | grep apcu
apcu
と apcu が出力されれば組み込まれています。

これで PHP-7.3.14 はインストールできたので、あとは既存の PHP-7.2.x との入れ替えです。

PHP 7.2.x から 7.3.14 へのアップグレード手順


 PHP 7.0.x --> 7.2.7 へのアップグレード のときと同じです。

自分が利用としている モジュールが組み込まれていることを確認できれば、 php-fpm サービスを停止して、シンボリックリンクの書き換えをした上でサービスを再起動し、ウェブサービスも再起動しておきます。

今回は php-fpmのログをみていましたが、特に PHP-7.3.14にしたことによるエラーはありませんでした。まぁとはいえ単に PHP を使ったサイトにまだアクセスされていないだけの可能性もあるので、まだしばらくチェックが必要だと思いますけどね。

最後に phpmyadmin などを入れているなら、そこで PHPのバージョンが Web上で変更されていることも合わせて確認しておくとよいでしょう。

2020年2月18日 @kimipooh