ハトネコエ Web がくしゅうちょう

プログラミングやサーバー・Web制作、チームマネジメントなど得た技術のまとめ

人事・採用ブログが誕生しました!

雑多に学んだことを書いているこの『ハトネコエ Web がくしゅうちょう』ですが、
このたび、組織のことや人事・採用関係の記事に関して、
『ハトネコエの人事・採用ブログ』 として独立させてみました!

目的としては『ハトネコエ Web がくしゅうちょう』のカテゴリーがすでにカオスで、
これ以上カテゴリーを増やしにくいってことだったり、
デザインを一新したブログでやりたいって気持ちだったり、妙な覚悟だったりします。

正直、独立させたところでちゃんと更新していくのか、
自分のことながらすでに不安でいっぱいなのですが(笑)、
独立させたからにはしっかり組織のことや採用のことについて書いていきたいと思います!
がんばります!

Visual Studio Code の Plugin をローカルにインストールする方法

以前、Visual Studio Code の Plugin (拡張機能)が壊れて、
それを直すためにプルリクを書いたのですが、その過程で Plugin のローカルインストールの方法を知りました。

忘れないようにブログにも書いておきます。

ここのコメント

git clone https://github.com/nekonenene/code-settings-sync.git -b v3.2.4-patch && cd code-settings-sync
npm i
npm i -g vsce
vsce package
/Applications/Visual\ Studio\ Code.app/Contents/Resources/app/bin/code --install-extension code-settings-sync-3.2.4.vsix

# Then, restart Visual Studio Code

と書いたのですが、実際そんな感じです。

1. 下準備

まずは修正したい拡張機能リポジトリを見て git clone します。
clone し終わったらそのリポジトリディレクトリに移動し、
依存パッケージ (node_modules) をダウンロードします。

npm install

バージョンを変更したい場合は、
package.json ファイルの "version": "x.x.x", のところを元の値より大きなものにします。

2. vsix ファイル作成

拡張機能ファイルを作るためには vsce を使います。
以下のコマンドでインストールします。
(なお、使用にあたって Node.js のバージョンは 8 以上である必要があります)

npm install -g vsce

vsce のインストールが終わったら、以下のコマンドで vsix ファイル を作成します。

vsce package

3. Plugin インストール

最後にそれを code コマンドを使いインストールします。
code コマンドを使えるようにする方法はこちらにある通り、
Shift + Command + P でコマンドパレットを開いて、「>install code」と打つと出てくるものを押すだけです。

f:id:nekonenene:20190407004939p:plain

code --install-extension xxxxxx.vsix

拡張機能のインストールが完了です。

『Extension 'xxxxxx.vsix' was successfully installed!』といったメッセージが表示されると思います。

4. Visual Studio Code のリロード

拡張機能のインストールを反映するため、 Visual Studio Code を reload する必要があります。

Shift + Command + P でコマンドパレットを開いて、「>reload window」と打って出てくるものを押し、リロードします。

f:id:nekonenene:20190407005407p:plain

5. おわりに

以上です。
ローカルインストールの方法が意外と簡単だと伝わったのではないかと思います。

これを活用して、「このプラグイン、こうだったらもっと使いやすいのに……」と思ったものを、
どんどん改善して自分流にしてみたり、便利な機能が作れたらプルリクエストを送ってみてください。

初めてPerlに触れてみての感想

特に解説記事というわけでもなく、筆の走るままに感想を。

入門にはPerl入学式の教科書がとても役立ちました。
id:papix 先生ありがとう……

Perl 自体への感想

  • 全体的に、シェルスクリプトRubyの中間みたいな文法。生まれを考えればまあ、そうだよね
  • true, false がない。1, 0 で表現する
  • == や != は数値比較に用いて, eq や ne は文字列比較に使うと決まってるの、あまり他の言語に見られない仕様。シェルスクリプトっぽい。数値か文字列か入りうる変数があると、比較の際に困りそう
  • 見た目はシェルスクリプトRubyっぽいので、文末のセミコロン忘れやすい問題
  • 配列の連結が my @arr3 = (@arr1, @arr2); だけで済むの簡単でいい……。
  • 一方、その仕様のせいで関数に渡すときは some_method(\@arr1, \@arr2) と参照渡しを強いられるのがめんどい
  • 2次元配列や入れ子のハッシュなどを書くときは、参照を意識しないといけないのがやや難しくめんどくさい。$, @, % の使い分けをしっかりマスターしたい。
  • PHPRubyみたく豊富な便利メソッドがあるわけではないので、実装力が問われる

CGI の時代が終わったわけ

Perl を調べてたら PSGI というWebアプリケーションサーバーの規格と、リファレンス実装の Plack というものを知り、
逆に CGI が廃れた理由を知ったのでメモ。

CGIが最も古典的でシンプルな実行方法として知られているが、クライアントからのリクエストのたびにプロセスの起動・破棄を行うため、サーバへの負担が大きく、ユーザへのレスポンスにも時間がかかる。また、このような起動形態ではデータベースとの接続といった必要な初期化も毎回行わなければならない。

https://ja.wikipedia.org/wiki/PSGI より引用)

『リクエストのたびにプロセスの起動・破棄を行う』ってヤバそう。
アクセス集中したらプロセスが何個も起動して、サーバー負荷がすごいことになりそう。
たしかにそれなら CGI 設置不可のレンタルサーバーとかあるよなと。

あと、アクセスのたびに initializer 的な初期設定の読み込みをするということで、普通に時間かかりそう。

おもしろい比較動画がありました。
nginx + PSGIApache + CGI で、全てのページを読み込むのにどれだけの差が生まれるのかという動画です。

だいたい 1:12(72s) と 1:56(116s) のところでそれぞれ終わるという差!
たぶんこの実験では Apache と nginx の違いによる性能差はそんな無いと思うので、
やっぱ CGI 時間かかるんだなぁという感想。