少し前に Status Bar Title という VSCode Extension を作った。全然大したことないのだが、2020年ももう終わりに近づくのに今年は全然書いていなかったので記録しておく。
2020/12/21
2020/01/17
ghq rootが複数あると最後のrootにcloneされるようになった
最初のrootが使われると思っていたが、最後(2つめ)が使われた。
調べてみると以下の issue があり、v0.17から挙動が変更されていた。当初意図したものではなかったようだが、今後この仕様になるとのこと。
https://github.com/motemen/ghq/issues/239
README には最初の root に clone されると説明されていたので、修正の pull request を送ったところすぐに修正を取り込んでいただけた。
というわけで、README の説明の通り ghq.root が複数定義されている場合は最後のものが clone に使われるので、ghq list に Go の GOPATH のような固有のパスを含めたい場合は ghq get で使ってほしいパスを最後に書くと良い。
2020/01/14
EvernoteからSimplenoteに移行しようとしたがEvernoteに戻った
プライベートなメモは長らくEvernoteを使っていたが、ローカルのデータが大きくなりすぎるとか、コストを安くしたい(プレミアム版を使っていた)とか、Markdownを編集したいとか…そういった理由から、Evernoteの代替サービスを探していた。
結果として 2018 年の11月頃に Simplenote に乗り換えた。
2020/01/13
Blogger Accessibility Performance改善
以前改善してからまた時間がたったので、改めてLighthouseの点数改善にチャレンジ。
なお、Chromeでログインして拡張機能でLighthouseを使っている場合、シークレットウィンドウからの実行を許可した上でシークレットウィンドウから実行しないと、キャッシュが使われてしまい正しい結果が出ない。
lighthouse の npm コマンドで実行するのが無難。
2020/01/12
Terraform: API Gatewayでdeploymentとstageでstage_nameがconflictする
プライベートでVPSを借りて動かしている古いAPIがある。これをAWSに移行しようと考えており、その過程でTerraformを使ってコード化を進めている。
その中で API Gateway を使っているのだが、stage、deploymentのresourceを普通に定義していったところ、conflictしてしまい正常に実行できなかった。
2020/01/11
ghqのroot配下ではVCS導入しないとghq listが遅くなる
今さらながら ghq を使うのをデフォルトにしようと考えてローカルにあるリポジトリをすべて ghq の root に移したところ、ghq list がだいぶ遅くなったように感じた。
以下が原因&解決策であった。
https://hirakiuc.hatenablog.com/entry/2017/05/06/205846
バージョン管理システムがないディレクトリが多数含まれていると遅くなってしまうらしい。
サンプルプロジェクトは ~/.ghq/github.com/ksoichiro に移動してあったため、そのディレクトリで以下を実行して git 管理としたところ改善した。(管理といっても git init しているだけ)
for i in $(ls -1); do if [ ! -f $i/.git/config ]; then echo "$i is not in vcs"; pushd $i > /dev/null; git init; popd > /dev/null; fi; done
2019/05/01
2019/02/20
yEdの基本的な操作方法+α
yEd の基本操作を確認する。
内容は独立しているが、一応以下の続き。
yEdでジョブフロー図っぽいものを描く: Edge Routing
yEdでジョブフロー図っぽいものを描く: Layout
yEdをすごく気に入っているような感じになってきているが…あくまで評価の過程。
なお、操作は Windows 10 で行っている。
2019/02/19
yEdでジョブフロー図っぽいものを描く: Layout
yEdでどこまで描けるか?本当に良いかを確認するためいくつか図を描いてみる。以下の続編。
yEdでジョブフロー図っぽいものを描く: Edge Routing
ベースとなる図
前回同様に以下をいじってみる。
レイアウトといいながらEdge Routingから入ってしまったが、今回はメニューのLayout直下の項目を試す。
yEdでジョブフロー図っぽいものを描く: Edge Routing
yEdでどこまで描けるか?本当に良いかを確認するためいくつか図を描いてみる。
ベースとなる図の作成
まずPaletteのFlowchartのSectionから、適当にボックスをドラッグアンドドロップする。
ダブルクリックでラベルを入力。
オブジェクトからオブジェクトへドラッグするとラインが引かれる。
オブジェクトの配置の際には、ガイドとなるラインが表示されるため縦横とも周囲の部品と合わせた位置に置くことができる。
ここまでで作れたのが以下。
レイアウトをいろいろとうまくやってくれるのが yEd の良いところのようなので試してみる。今回はEdge Routing。
2019/02/18
2019/01/20
GitLab v7.9.4 のサーバ移行とアップグレード
GitLab Omnibus Package でインストールして運用してきた古い GitLab を別のサーバに移行し、最新版にアップグレードしたい。
ここでは v7.9.4 からの移行とアップグレードを考える。
サーバ移行については、データバックアップが取れるのでそれを新環境で取り込めば良い。
アップグレードについては Omnibus Package でインストールしたものなら基本的に以下を参照すればできる。
https://docs.gitlab.com/omnibus/update/
メジャーバージョンアップはバージョンをまたがない方がよい(1つずつ上げる)ということで、何度かに分けて上げる。
基本的に公式ドキュメントに記載されていることを正しく読み取って組み合わせれば良いのだが、以下では今回のケースで必要なことを事例として説明する。
2019/01/08
Android ナイトモードをダークテーマとして提供する
以前の以下のエントリの関連。
Android ナイトモードを起動時に設定するとonCreateが二度呼ばれる
ナイトモードは時間に応じて自動的に変わる設定もできて、そのようになっているアプリもある。ただ、いくつかのアプリを調べてみた感じでは、現状ではON/OFFの設定のみのアプリが多い印象。三日月のアイコンをタップするとON/OFFが切り替わったり、ダークテーマ、ダークモードなど別の名前で提供されているものも多い。
ON/OFFの切り替えだけなら実質的にはテーマの変更であって、テーマの変更として実現すれば configuration の変更にならず onCreate の二重呼び出しなども発生しない。ナイトモードを適用したからといって起動が遅いのは何かを見落としているのかもしれないが、現状では、単純なON/OFFで提供したいならテーマとして提供する方法が無難かもしれない。
以下、ナイトモードの実装状況について確認したアプリについて記録しておく。
Node.js の csv-stringify で CSV レコード内の改行をダブルクォートで括る
Node.js で csv-stringify による CSV 出力をする際、項目(レコード)に何種類かの文字があった場合はダブルクォートで括るようにしたい。
csv-stringify が大体勝手にやってくれるが、現時点の最新版 v5.1.2 では改行の一部の取扱いが期待通りでなかった。
- 行のデリミタが LF なら項目内に LF が含まれているとダブルクォートで括られる。→期待通り
- 行のデリミタが CRLF なら項目内に CRLF が含まれているとダブルクォートで括られる。→期待通り
- 行のデリミタが CRLF なら項目内に LF が含まれていてもダブルクォートで括られない。→期待と異なる
2019/01/06
Android Studio (Asset Studio) で扱える SVG 画像を Inkscape で作る場合の注意点 (グラデーション)
Asset Studio で、Inkscape で作成した SVG 画像を扱うとき、Inkscape 特有のタグなどのせいでエラーが発生する場合は「プレーンSVG」として保存すれば良さそう。
ただ、この場合は Inkscape のデータが失われる。
グラデーションに関しては上記では解決せず、
例えば ic_launcher.svg などを Inkscape で作って Asset Studio でアップロードしようとすると
ERROR @ line 83: Gradient has no stop info
のようなエラーが出て、グラデーションが適用されない。
2018/12/31
フォーマッタの自動適用
前のエントリでも紹介した node-archiver-zip-encryptable の開発では Prettier を適用したが、フォーマットの統一に注意を払わなくて済むのは非常に快適だった。
ルーツが何かは調べられていないが、過去の自分の経験の中で似たようなものには Golang の gofmt があった。
Java のプロジェクトでも適用できないものかと思ったが、 prettier-java は現在 Work in Progress の状態。
vim でタスク管理
これもまた少し前の話になるが、vim スクリプトで簡単なタスク管理用スクリプトを作った。
結果は以下のようなイメージ。
~/.vimrc
要件
タスク管理のツールは世の中に数え切れないほどあるが、自分の場合は以下のようなことが要件で、ちょうど良いものが見つからなかった。