Above & Beyond

日々のアウトプット記録

吉祥寺.pm26 でLTしてきた。

今週火曜日(2021年04月20日)は「吉祥寺.pm26【オンライン】」でLTをしてきました。

f:id:kabukawa:20210124084308p:plain

kichijojipm.connpass.com

吉祥寺.pm25でのLTに続き、またも喋ってきたよ、という内容です。

目次

吉祥寺.pm とは

過去の参加報告は前回のLTのときのエントリに載せているので、そちらを参照してください。

kabukawa.hatenablog.jp

何故参加したか

吉祥寺.pm26の募集が始まったときに、なんか喋りたいなと思いたち、勢いでLTに申し込みました。 前回のLTでWindowsTerminalの話をしたんですが、今回はもう少し仕事での開発の話をしたいなということで付けたタイトルが「古の環境と戦う話」。 速度優先で回されてきた現場で更新するのも難しい開発環境、というのは稀によくある話なので、何かのときに思い出してもらえると良いなと思って喋ってきました。

何を喋ってきたか

今回はいわゆるLAMP(Linux/Apache/MySQL/PHP)で構築された古いシステムで開発するときに、どういうことをしているかという話です。 架空の現場という設定なので、実際にあるとかいうのは気にしない気にしない。

github.com

今どきの開発だと、例えばVS Codeでリモート開発拡張を入れてデバッグとかもできるような形で環境を構築する現場もあると思うのですが、

  • OSが古すぎてリモート開発拡張が動かない
  • 文字コードutf-8じゃなくて、VS Codeのデフォルト状態だと文字化け
  • Dockerでイメージ作ろうにもOSが古くてパッケージのインストールができない
  • gitが使えると思っていたら実はsvnだった

という現場あるある(本当か?)をどうやって解決しているか、みたいな事を話しました。 前回の反省を活かし、時間内に収まるようにだいぶすっとばして話をしました。 こういうのは重苦しい話になりがちなので、ツイッターなどでのコメントでは皆さんに笑っていただけたようなので、喋った人間としてはちょっと安心しました。

今回のLTで伝えたかったことは

  • 問題解決がエンジニアの仕事。
  • 古いのではない。枯れているのだ。
  • 誰かが通ってきた/通るかもしれない道。
  • きっとどこかにヒントは有る。
  • そういうのを楽しむのも大事。

ということです。なので、最新じゃないけど現場のリアル、みたいな話は今後も続けていきたいと思います。

なお、今回の吉祥寺.pm26のテーマは「1周回って、辿り着いた”先”」。

実は始まるまでこのテーマのことをすっかり忘れていて、「やべー」と思っていたのですが、こうやって振り返ってみると、すこしだけ当てはまっているかな、と思ったり。 ここ数年で変わったところはたくさんあるんだけど、結局自分のやっている開発の仕事は何も変わってない。 今回の話でいうと、1周回って10年前に最新だった開発環境に戻ってきたわけですね。 エディタも変わったし、システムの動く環境も変わったけど、相変わらず動いているものはあるし、システムの作り方って結局あんまり変わっていない。 それは良いことじゃないのかもしれないけど、それを変えられなかったのは自分なんだよなぁ、みたいなことを考えています。 なので、本当は今回の話をしたいと思った理由は、変えなきゃいけないんだ、みたいな気持ちがあったのかなぁ、なんて。

迷うなら変わる方向へ。

そんなことを考えながら、このエントリを書いてます。

トークと資料

タイトル 登壇者 資料
Perl student has become SRE yuzoiwasaki speakerdeck.com
[資料が公開されたら追記します] ici_mici [資料が公開されたら追記します]
ソフトウェア開発における『知の高速道路』 Yoshitaka Kawashima www.slideshare.net
1周回って、 辿り着いた技術コミュニティの話 ただあき speakerdeck.com
心理的安全性に飢えた自分が一周回って辿り着いた1on1のコツ 面川泰明 speakerdeck.com
古の環境と戦う話 kabukawa github.com
[資料が公開されたら追記します] AkiraAbe [資料が公開されたら追記します]
研修はイベントでなくコミュニティ作り kfly8 speakerdeck.com

ツイート

ツイートはこちら。一時期に比べると減った気もしますが、Zoomチャットの方でもだいぶ会話が流れていたので、これもまたオンライン化した変化なのかな、と思います。

twitter.com

まとめ

LTで喋るのも2回めで少しずつオンライン登壇も慣れてきたので、いつかトークにも挑戦したいですね。(その前に喋る内容を考えないといけないですが) 今回も楽しく参加できました。内容も様々で意外な発見もあり、参加できてとても満足でした。 ありがとうございました!

Win-sshfs

モチベーション

VS CodeのRemote SSHはとても便利なんだけど、接続先のOSが古いとかサポートされていない環境だと使えない。 じゃぁ、nfs、っていうのもroot権限がないと設定とかできないし、共用の開発サーバーだと勝手に設定を変えることもできない。

そういう場合に、sshfsを使ってWindowsエクスプローラーでサーバーのディレクトリをマウントして使うという方法がある。 この方法だとssh接続ができるホストであればOKなので、上記のような古の環境でもGUIエディタで編集などができるようになる。 ということで久しぶりにインストールと設定をしたのでそのメモ。



セットアップ

インストール

以下の2つをインストール

起動

スタートメニューからwin-sshfsを検索して起動

設定

  1. 起動したらタスクトレイに常駐(黄色いアイコンのやつ)するので、アイコン上でマウス右クリック
  2. Show Managerを選択して設定画面を開く
  3. ダイアログの左下に有る Add ボタンをクリック
  4. ホストへのsshでのログインなどの情報を入力 f:id:kabukawa:20210209235746p:plain
    • DriveName:接続先の名前(区別するのに使うだけなので任意の名前でOK)
    • Host:ホスト名もしくはIPアドレス
    • Port:22
    • Username:ssh接続する時のユーザーID
    • Password:パスワード認証の場合。ドロップダウンで鍵認証も可能
    • Directory:ホスト上のマウントしたいディレクト
    • DriveLetter:ローカルPCのドライブレター
    • Mount at Login:チェックを外すのを推奨(後述)
  5. Save ボタンをクリックして保存

マウント

Mount ボタンを押すと DriveLetter で指定したドライブとして Host の Directory がマウントされる。 あとはWindows上で使うのと同じ。エクスプローラ上でコピーしたり編集操作も可能

アンマウント

使い終わったらunmountしておく。

注意点

とても便利なsshfsなんだけど、Windowsのネットワークドライブとしてマウントするというところで注意点が有る。 それは、ウィルススキャンがネットワークドライブに対してもかかるようになっていると、sshfsで接続したホストもスキャンされることになる、ということ。 スキャンされるということはファイルを読んで結構なデータが転送されることになるので、例えばクラウド仮想マシンに対してマウントをしていると クラウドからのデータ転送料金だけで大変な金額になったりする。そういう経験をしたことが有るので、Mount at LoginオプションはOFFを推奨しています。

とはいえ、そこそこのパフォーマンスで使えるし、ローカルのPCへのインストールだけなので敷居はそこそこ低いかなと思います。 こういう方法もあるということで、何かのときに役に立ってくれるといいなと思います。

オンラインのカメラ周りの話

事の起こり

昨年の緊急事態宣言のあたりで、家でビデオ会議をするのにWebカムが無いなということに気づいたのですが、 時すでにお寿司🍣、もとい遅しで、Amazonを見ると品切れで入荷日未定か転売ヤーが結構な高額でWebカムを売っている状態でした。

f:id:kabukawa:20210124183358p:plain

目次

どうしたか

Webカムは買えない。じゃぁどうするかって話ですが、ググってみるとこんな記事が見つかりました。

pc.watch.impress.co.jp

をを、スマフォのカメラをWebカムに使えるようにするアプリとな。 うちにはちょうど ASUSのZenfone2 Laserという少し古めのスマフォがあるし、これをWebカムにしてみるか。 ということで、早速入れてみたわけです。

iVCam

使っているのはこれです。

www.e2esoft.com

PC側にWebカムとして認識させるためのソフトウェア、スマフォ側にカメラの映像を転送するためのアプリを入れます。 カメラ画像に iVCam と入るのを許容できれば無料で使えますが、$ 24.95で永続ライセンスが買えて、PayPal払いができるので自分は買っちゃいました。

www.e2esoft.com

何が良かったか

  • Webカムとして、古いスマフォを活用できる。
  • スマフォのカメラは結構性能がいいので、下手なWebカム買うより良い映像が出る。
  • 試してみてから購入なので、うまく動かなければ消せるというのが手軽でいい。
  • USBケーブル経由で使えば遅延も無く安定してWebカムとして使える。
  • 映像を明るくしたり、といったちょっとした加工も可能。(ただし、効果は弱め)
  • リモートじゃない日はカメラにしているスマフォを会社に持っていって、会社のPCでも使える。

今はWebカムの価格も落ち着いて、わざわざスマフォをカメラにする理由はあまりなくなりましたけど、古いスマフォを活用できているので自分的にはこれはこれで満足です。

ちなみにUSB経由での接続方法に関する手順も公開されています。(但し英語)

www.e2esoft.com

参考までにグーグル翻訳でざっくり日本語にしたテキストを貼っておきます。

USB経由で接続

iVCamは、USB接続を介して携帯電話からPCにビデオを転送できます。
これにより、より安定して高速になります。

■ iOS
 最新のiTunesをPCにインストールし、iPhoneをUSBケーブルでPCに接続します。
USBケーブルを差し込むと、iVCamは自動的に接続してUSB経由でビデオを転送します。
簡単ピーシー!
注: USBが機能しない場合は、Appleデバイスドライバが正常にインストールされ、
Appleアプリケーションサポートサービスが有効になっていることを確認してください。
必要に応じてiTunesを開いたままにします。

■ アンドロイド
USBドライバー
PCに接続しても電話が認識されない場合は、電話のUSBドライバーをインストール
してください。公式のモバイルアシスタントソフトウェアを直接インストールするか、
ここからダウンロードするか、携帯電話のブランドに応じて検索できます。
たとえば、「Android USB DriverforSamsung」を検索します。

ドライバをインストールした後、電話をPCに接続すると、選択に基づいてUSB
ストレージまたはメディアデバイスとして認識されます。

USBデバッグ
携帯電話側で、[設定]> [開発者向けオプション ]で[ USBデバッグ]オプションを 有効
にします。

Android 4.2以降では、 開発者向けオプションはデフォルトで非表示になっています。
次の手順を使用して表示します。

デバイスで、[設定]> [<デバイス>について]に移動し ます。
ビルド番号を7回タップして、  [設定]> [開発者向けオプション]を使用 できるよう
にします。
次に、USBデバッグオプションを有効にし ます。
方法がわからない場合の詳細については、Googleの「AndroidデバイスでUSBデバッ
グを有効にする」を参照してください。

ヒント:  USBポートに接続している間、Androidデバイスがスリープ状態にならない
ように、[スリープ解除]オプション を有効にすることも できます。

USBモード
USBケーブルが接続されている場合は、ファイル転送(MTP)または写真転送(PTP)
にUSBを使用するを選択します。

iVCam PCクライアントを実行し、しばらく待ちます。電話機を初めて接続する場合
は、USBデバッグを許可するように求められます。
[ OK]を選択して動作させます。

■ iVCam
電話機が適切に構成され、USBデバッグモードでUSBケーブルを使用してPCに接続
されている場合、iVCamは自動的にUSB経由でビデオを接続および転送します。

おまけ

最初の頃はスマフォをディスプレイの上にフックで固定したりして使っていたのですが、いまいち使いづらい。 それに窓に近いせいで顔が暗くなる(スマフォのカメラが逆光を絞りでなんとかしてくれているんですが、それでも暗い)ので、こんなものを買いました。

www.3coins.jp

ショボいながらも女優ライト風のものが付いていて、なんとなくいい感じの場所にカメラを固定できる。 300円ショップですが、これは1000円(税別)で買えます。

設置したものがこんな感じになってます。机が狭い(幅60cm)ので、ディスプレイの横から無理やりカメラとライトを前に出して設置している感じです。

f:id:kabukawa:20210124182456j:plain

まとめ

こうやって見ると、ここまでやるなら素直にWebカム買ったほうが安かったのでは?と突っ込まれそうですが、まぁ、気にしない気にしない。 古いものを活用しながら、そこそこいい感じにできる、というのが良いのです。 ノートPCについているカメラよりきれいに撮影できるのも良いなと思っています。 Webカムをそろそろ買おうと思っているんだけど、という人にこういう選択肢もありますというのが伝わると良いなと思います。 (但し、誰にでもお勧めできるものではない、というのも確か。)