Google Cloud ShellでClangのビルドをしようとしたけど時間がかかりそうだからやめた

2019年4月29日の時点で、google cloud shellにはclang-8がインストール済みだった。 知らずにソースコードからビルドしようとしたけどものすごく時間がかかりそうだったから断念した。 インストール済みだけどパスは通ってない。 export PATH=/usr/lib/llvm-8/bin:$PATHした。

$ sudo apt update
$ sudo apt full-upgrade
$ sudo apt install cmake

$ git clone --depth 1 -b llvmorg-7.1.0 --single-branch https://github.com/llvm/llvm-project.git
$ cd llvm-project
$ mkdir build
$ cd build

$ cmake ^
-G "Unix Makefiles" ^
-DLLVM_ENABLE_PROJECTS=clang ^
-DLLVM_TARGETS_TO_BUILD=x86 ^
-DCMAKE_BUILD_TYPE=Release ^
-DCMAKE_INSTALL_PREFIX "インストールしたいpath"

$ make

ビルドしたいだけだから、git cloneには、depth 1 -b タグ --single-branchのオプションをつけて必要な分だけコピーした。

JavaScriptのフォーマッターPrettierのVimプラグインをインストールした

  • vim-prettierは、デフォルトの設定ではprettierのデフォルトルールとは違う整形ルールを持つ。
  • vim-prettierは、デフォルトの設定では.prettierrcがあればその設定を優先する。

prettier

prettier.io

prettierのインストール

プロジェクトローカルにprettierをインストールする。

npm init
npm install --save-dev prettier

使い方

npx prettier --write index.js
  • --writeはファイルを上書きする
  • --checkはdiffではなく、整形済みかどうかのみを出力する

vim-prettier

github.com

インストール

~/.vim/pack/<pkgname>/start/にgit cloneする。 vimrcに何も指定しなくても:Prettierコマンドを実行すれば使える。

  • g:prettier#exec_cmd_path

    • 指定しなくても、パッケージルートのnode_modules/.bin/prettierが使用された
    • コマンドを探す順は、READMEに書いてあった
    • 現在のパスは :PretierCliPathで確認できる
  • g:prettier#exec_cmd_async default:0

    • デフォルトでは非同期実行ではない
  • <Leader>p:Prettierコマンドがマップされている

Prettierの整形オプション

CLIでオプションなしで実行した場合と、vim-prettierでオプションを既定値で実行した場合とで結果が違う。 引用符の一重と二重とか他にも。 READMEに書いてあった、意図的にcliのdefaultとは違うオプション指定にしてあるそうな。

github.com

prettierrc

.prettierrcを置けば、vim-prettierもそれを読む。

  • g:prettier#config#config_precedence default: prefer-file
    • cli-override
      • 設定ファイルよりもcliフラグが優先される
    • file-override
      • cliフラグが設定ファイルとマージされる
    • prefer-file
      • 設定ファイルがあったらcliフラグは無視される
    • たぶんここでいうcliフラグは、vim-prettierがcliをコールするときに設定するg:prettier#configの各設定値のこと

{}だけを書いた.prettierrcをプロジェクトルートに置けば、prettier#config#config_precedence = prefer-fileのときにvim-prettierの整形ルールがデフォルトのCLIの整形ルールと同一になる。

タイトルが付けられるならブログに書く

自然とタイトルが思い浮んでいないのならtwitterに書く。ブログに短かいエントリーを書いてもいい。題名というかキャッチフレーズ的なものをひらめいて、それから何かを思うことがよくある。ツイートにはタイトルが付けられない。

水泳の練習メニューを変えた

週3日、1回30分でクロールと平泳ぎ。

いままでは、

  1. 10分ゆっくりクロール
  2. 10分ゆっくり平泳ぎ
  3. 10分強めのクロール

これから

  1. 5分以上のゆっくりクロール
  2. 5分以上のゆっくり平泳ぎ
  3. 10分以上の強めのクロール

ゆっくりクロールは準備運動。 ゆっくり平泳ぎは、まだ平泳ぎがうまくできないからじっくり集中する必要がある。日によって10分も保てないことがある。そういうときは5分過ぎたら切り上げていいことにする。 強めのクロールは、だいたい気分がのってきてもうすこし続けたいと思ったりするから最低10分であとは全体の時間が30分ぐらいに収まるようにする。

WSLのDebianでまず最初にnvmをインストールしようとしたらwgetでエラーになる

WSL(Windows Subsystem for Linux)のDebianをインストールした。まず最初にnvmをインストールしようとして、wgetをしたらtrusted host じゃないとエラーになった。wgetがどういう仕組みで信頼済みの認証局を知るのかわからないけど、そういうのはosとかが便利サービスとかパッケージとしていろんなコマンドが利用できるようになっているんじゃないかと思う。その線でインターネットをキョロキョロして、とりあえずあった。

ca-certificatesパッケージをインストールすればwgetも利用できる信頼済み認証局の置き場所が作られた、そこにMozillaとかが選んだメジャーなCAの証明書が用意される。

opensslパッケージの提案(きちんと意味がわかっていない)と、pythonの何かにも含まれているからこれ入れとけばよさそう。

4月7日土曜日にNagoya.cloud.first #2へ参加した

来栖川電算さんにピザとスシを食わせてもらった、ごちそうさまでした。

"見に来てみる枠"という成果発表が必須ではない参加者として行ってきた。 本当に皆さんもくもくとやっていた。

クラウド縛りの指すものがよくわからずに参加した。どうもawsとかgcpとかのクラウドサービスに触れればOKっぽい空気を嗅ぎ取った。なので、自分は、Amazon Route 53で管理するドメインの証明書を、Google Cloud Shell で Certbotを実行してLet's Encryptに発行してもらって、AWS Systems Manager Parameter Store に格納する、って作業をやった。

Secrets Manager はParameter Storeの高機能版で、バージョン管理、ローテーションのトリガー、監査ログ、などが利用できるよになったやつと理解してる、有料。自分の用途では、開発時に手元のWebサーバーで使う証明書と鍵の置き場所としてだけ考えている。s3や、dynamo db、google cloud shellのHOMEドライブ、なんだったらgmailにメールとして送信しておいてもいいかもしれないけど。どこに置いても、使おうと思ったときにはどこにあるか忘れるし、とり出し方も忘れがち。当面はAWSを触ってみようと思ってるので、Parameter Storeにした。