done is better than perfect

自分が学んだことや、作成したプログラムの記事を書きます。

VimからVisual Studio Code (VSCode) に移行した

VSCode(Windows)とVSCode(WSL)
VSCode(Windows)とVSCode(WSL)

普段はインフラエンジニアをやっているので、サーバにSSHして設定ファイルをVimでいじるみたいなことがままあります。 その延長線上で、プログラムのコードだったりとかもVimで書いていたのですが、正直 .vimrcいじって頑張って補完とか出すのめんどいなーと思っていたこの頃でした。 (ぶっちゃけJavaとかはIntelliJ使っていたりいまいち統一感なかったですが)。

そんな中、なんの気無しに以下の記事を読んでいて、すごいなーと思う一方、「ここまで頑張ってやっとVSCodeと同様なの?」という気持ちが湧いてきてしまいました。 (記事の著者の方には申し訳ないですが・・・)

qiita.com

そんなわけで、VSCode をプログラミング用途で使い始めてみました。VSCode自体は昔から使っていたのですが、 Windows環境に入れていただけで、Windowsではそもそもプログラミングしないので、テキストエディタとしてしか使っていなかったです。

しかし、VSCodeをWSLの中で動かすことができると知り、試してみることにしました。

使っている環境は以下です。

もともとIntelliJもWSLの中で使っていたこともあり、多分動くだろうなーと思っていたのですが、なぜか今まで試していませんでした。

WSL(Ubuntu)には、以下の手順に従ってインストール。Snapでもインストールできるかもしれませんが、なんとなく試していません。

Running Visual Studio Code on Linux

インストール後はcodeと打てば起動します。簡単ですね・・・と思っていたら、なぜかWindows側のVSCodeが立ち上がってしまいました。

確認してみると、どうやら$PATHWindows側のVScodeを指している模様。以下のように、aliasを貼って回避しています。

alias code="/usr/bin/code"

Windows側のバイナリがWSLからシームレスに実行できると、こういう弊害があるのか・・・)

aliasを貼ったあとは無事に動いています。以下、所見。

  • いいところ
    • プラグイン入れたら、あとは基本デフォルトのままでいい感じに動く
    • VSCode内のTerminalが普通に動く
      • 動くかどうか不安だったのですが、ちゃんとWSL内のZshが動きます。
  • 悪いところ
    • 動作が遅い
      • VScodeだからなのかはわからないですが、多少もたつく感じがします。コード行数が多くなると辛くなるとかあるかも。
    • たまに表示が壊れる
      • 同様の環境で動かしているIntelliJではないのですが、たまにポップアップとかがぶっ壊れて操作不能になります。VScodeを再起動すれば治りますが

総評

VimもいいけどVScodeもいいね

小ネタ: WSLからWindowsのアプリケーションを呼び出したいとき

WSLは便利ですが、基本GUIの環境が入っていなかったりして、たまにコマンドラインからWebブラウザを呼び出すようなスクリプトを使っていたりすると動かなかったりします。

URLをWindows上のChromeなどにコピペすればよいのですが、面倒でした。

なので、WSLからWindows側のChromeコマンドラインで呼び出して使いたかったのですが、やってみたところ以下で普通に動きました。

"/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe" google.com

これでChromeのタブが開きます。インストール先は適宜変えてください。aliasに登録しておくと便利だと思います。

「入門 監視」を読んだ

入門 監視

すげータイトルだと思って思わず買ってしまった。

最近のイケてるツールの使い方とかを羅列した感じなのかな、という軽い気持ちで読み始めていたが、全然違った。全12章とおまけがあるわけだが、そのうち前半部分の1章から4章までは、監視の具体的な方法というより、業務としてシステムの監視を行う際のいわば「心構え」といった感じだった。

  • なぜ監視をするべきなのか
  • そのアラートは本当に上げる必要があるのか
  • というか外注できないのか

などなど。これはただの想像だが、監視というのはそれ自体がお金を産むわけではないので、この本の著者は常にこういったことを周りに説明する必要があったのだろうなと思う。 アラートが上がった際に止む無くオンコール対応しなければならない場合に備えてローテーションを組む方法まで書いてあって、にじみ出るような苦労を感じた。(あとこの著者は多分Nagiosが嫌い)

監視する対象はシステムのみにとどまらず、ビジネスのKPIに関するものもあった。言ってしまえば、あるサーバのあるプロセスのうちどれかが死んだからどうだ、というのは割とどうでもよくて、それがどれだけビジネスインパクト(より直接的に言うなら、お金)があるか、というのが重要なのだろう。極論すれば、別に全く儲からず重要でもないビジネスを支えるシステムなぞ監視する必要もないわけである。

「システムだから監視するよね」じゃなく、「どれだけ価値があるシステムで、それが止まった場合どれだけビジネスに影響があって、どれだけ損失があるかを予め把握した上で、それに対する保険のために監視しましょう」というのが筋なのだろう。(個人的には、こういった考え方は苦手で、ついついイケてるツールとかオレオレ最強監視スクリプトとか、そういったことを考えがちであって、反省させられた)

ぶっちゃけツールの使い方を知りたいなら別の本を読んだほうが良いと思いますが、「そもそも監視って何から始めたらいいの?」って人にはおすすめです。

アメリカへの長期出張用にLycamobileを使ってみる

数週間アメリカへの出張となった。これで二回目で、前回行ったときは現地のAT&Tに行ってプリペイドSIMカードを買って使ってたんだけど、今回は日本から買って行ってみることにした。

いろいろ種類はあるみたいだけど、今回はLyncamobileを利用する。

準備

現地で変にトラブっても嫌だったので、日本でアクティベートした。帰国日が使用期限を超えないように調整して、日本のiPhone 8 (docomo版をSIMフリー化済) にSIMを入れる。

暫く経つとSMSが届いて、現地の電話番号を確認できる。 準備はこれだけでおしまい。とりあえずSIMを戻す。

現地で使ってみての感想

現地に着いてから、さっそくSIMをLycamobileに差し替える。暫く経つと通信ができるようになる。

簡単にWebブラウズなどする分には、通信速度は特に問題なさそう。

ただし、通信可能域が狭い気がする。T-mobileの回線を利用しているらしいが、なんかちょくちょく途切れる。別に田舎とかでないのだが。

結論

アメリカのAT&Tとか行ってSIMを買うよりは楽だと思います。

「転職の思考法」を読んだ

ぶっちゃけ今すぐ転職したいかと言われるとそうでもないというか、なんとなく閉塞感を感じるし面白そうな仕事は任せてもらえてないしで不満は溜まっているわけではあるんだけど、世間的に言えばそれなりのお給料はもらえるという点では満足している。

とりあえずビ○リーチとかに登録して、履歴書を書いて見るわけだがこれがまあ書けない。社外からみて、というのがやはり難しい。うちのチームはそれなりに体外アピールをしやすいところではあるはずだが、それでも書けないとなると皆一体何書いているんだ?という疑問が湧いてくる。

「転職の思考法」でも、まずアドバイスとして出てくるのは「自身のマーケットバリュー」を測る、ということだ。いろんな軸が出てくるわけだが、どれもそれなりに難しい。「会社を変えても、価値のあるスキルをどれだけ持っているか」という問いにぱっと答えられる人がどれだけいるのだろう? そんなのぱっと答えられるような奴ならどこでも行けるんだから悩む必要なくない?と思ってしまった。

そんなことを思っていたが、「終わりに」で筆者が語っていた言葉を見て納得した。「転職の思考法」というのは、とどのつまり転職そのもの、というよりは自己を高めるといった自己啓発的なものなのだ。「転職がいつでもできるような人材になれるよう努力しろ」ということを筆者は言いたかったのだろう。 そのような人材であれば、たとえ転職しないにしても周りの環境を変える材料となるから。

もう少し努力してみるか、という気持ちにさせてくれる本だった。たとえ、転職しないにしても。

初心に返って(ry

一年ぶり以上でのブログ投稿。

お仕事が忙しかったという言い訳もありつつ、まあ基本的には面倒だからブログ投稿サボってました。

なぜまた投稿する気になったかというと、きっかけは友人の転職です。 わずか2-3ヶ月でぱっと決まっており、しかも年収xx万円増えるという大成功さ加減を見て、真剣に転職を考え始めました。

いろんな転職サイトを見ている中で、ふと気がついたのが「あれ、自己アピールが何も書けない・・・」でした。 社外に対して説明できるものが何もなく、ものすごい危機感。

これじゃイカンということで、勉強を再開しようかな、と考えてまずはアウトプットの場所をと思い、ブログを再開することにした、という経緯です。 三日坊主にならないよう気をつけつつ・・・

まずは、以下のようなことを定期的にやっていこうかと思っています。

  • [LeetCode|https://leetcode.com]を1日1問は解く
  • Kaggleの勉強を再開する
  • Kubernetesなどの最近イケているプロダクトを触る
  • Rustの勉強

こう見ると盛り沢山ですが、一つ一つやっていきたいと思います。

初心に帰ってKaggleで機械学習勉強し直し始めた話

就職してから2年と少し経ちましたが、最近色々辛くて大学生時代の意識高い系自分に戻りたくなりました。

あくまで意識高い なので、決して高スペックでもなかったですがまだ自分に無謀な期待を持っていた時代が懐かしい。

あの頃を思い出しつつ、あの頃雰囲気でしかわかっていなかった機械学習や統計をもう一度勉強し直すためにKaggleなど使って勉強することにしました。

(何度も再入門して挫折していることは内緒。たまにしか書かないブログにまで書いていることが本気の現れ、ということで一つ・・・)

まずは手始めにKaggleのチュートリアル的なコンペであるタイタニックさんをやろうと思います。

Titanic: Machine Learning from Disaster | Kaggle

高得点を狙うとかとうてい無理ですが、最近の道具の使い方や基本的な機械学習などについて思い出しながら(ほぼ再勉強しながら)やっていこうと思います。

この記事は決意表明だけですが、実際にはもう手をつけ始めています。次回からその稚拙な内容を書いていきます。