ソフトウェア開発

git-cz (commitizen) にて、リポジトリ独自の設定を用いたいとき

git-cz (commitizen) とは github.com リポジトリ独自の設定を用いたいとき 1. changelog.config.js をリポジトリのルートに作る changelog.config.js というファイルをリポジトリのルートに作ります。 2. 例えば、絵文字を無効に設定する 例として、コミッ…

VS Code で波線が引かれた場所のポップアップをキーボードショートカットで表示する

状況 下記のようなポップアップを表示するために、キーボードショートカットを使いたい、という状況です。 マウスやトラックパッドを用いて当該箇所にポインタをホバーさせれば表示できますが、キーボードから手を話したくないという欲求があります。 gyazo.…

md5sum コマンドの結果から、ハッシュのみ、またはファイル名のみを取り出す

前提 md5sum コマンドを実行すると、以下のような表示が得られます。 $ md5sum FOOBAR.txt 436e4203d62ece408999be0ff9cc155c FOOBAR.txt 結論 上記の表示から「ハッシュのみ」を取得するには、結果を cut コマンドに渡せばよいです。-d' ' というオプション…

CircleCI の "store_artifacts" における "destination" を使う場合と使わない場合の違い

公式ドキュメントより 公式ドキュメント には、以下のように記載されています。 現在、store_artifacts には path と destination の 2 つのキーがあります。 path は、アーティファクトとしてアップロードされるファイルまたはディレクトリのパスです。 des…

CircleCI の SSHデバッグ の際に Permission denied (publickey) エラーが出る場合は鍵ファイルを指定する

状況 SSHデバッグの際に、以下のように接続を促されたとします。 You can now SSH into this box if your SSH public key is added: $ ssh -p 55555 10.10.10.10 Use the same SSH public key that you use for your VCS-provider (e.g., GitHub). RSA key f…

CircleCI CLI で実行されるジョブの名前は "build" でなければいけない

注釈 2021/02/23 現在の情報です。 結論 build という名前のジョブが存在しない場合、以下のようなエラーが出ます。 $ circleci local execute Docker image digest: sha256:99018c7b8dca0f952d65d80bfe6174a8ea0ca0e1908974cfea053e4be170eee5 ====>> Spin …

Cloudflare の DDoS protection を Puppeteer でスルーする方法

結論 Puppeteer は使いません*1。Playwright を使います。 さらに、内部エンジンとして firefox を用います。 具体例 Cloudflare の DDoS protection が設定されている URL を https://ddos-protection.example.com/ と仮定します。 このとき、以下のコード…

digコマンドのクローンである dog を自分でビルドしてインストールする

dog とは dog is a command-line DNS client, like dig. It has colourful output, understands normal command-line argument syntax, supports the DNS-over-TLS and DNS-over-HTTPS protocols, and can emit JSON. github.com リリースバイナリが実行でき…

firebase-tools で作られた設定ファイル(ログイン情報など)はどこに保存されているか

結論 ~/.config/configstore/firebase-tools.json 参考 github.com firebase.google.com

Cypress で --browser が見つからない場合は、「ブラウザ定義名」でブラウザが起動できるようにすればいい

どういう状況か Cypress をブラウザ指定で実行するとき、「ブラウザが見つからない」というエラーが出るときがあります。もちろん、当該ブラウザは正しくインストールされている場合です。 例えば以下のようなエラーメッセージです。 $ cypress run --browse…

direnv を用いたときに下位のディレクトリに環境変数をマージしていく方法と注意点

結論 source_up という一行を加えればいいです。 参考 公式ドキュメントに記述があります。また、Issue としても挙がっています。 direnv.net 注意点 source_up を書く順番によって「マージ」か「ディープマージ」かが変わってきます。難しいルールではなく…

WSL2 (Ubuntu) で System Spec (RSpec, Capybara) を実行しようとすると Webdrivers::BrowserNotFound: Failed to find Chrome binary と出るときの対処方法

結論 1. google-chrome をインストールします 詳細は割愛します*1 配置場所は /opt/google/chrome 配下になるかと思います 2. chromedriver をインストールします 詳細は割愛します 配置場所は /usr/bin/chromedriver になるかと思います*2 3. spec/rails_he…

Embulk で配列型のカラムを PostgreSQL に outputするときは column_options で {value_type: 'string'} を指定する

結論 例えば、my_hobbies のようなカラムがあり、配列型で定義されているとします*1。そのようなカラムを含んだテーブルを特に何もせずに embulk-output-postgresql で PostgreSQL に書き込むと、以下のようなエラーが出て怒られます。 org.embulk.exec.Part…

Goreman を用いる際に環境変数を使いたい場合は、direnv を用いるのがおそらくベター

Goreman とは Foreman の Go 実装です*1。 github.com 環境変数を使いたい Goreman には Foreman にある -e オプションがありません。したがって、環境変数を用いたい場合にどのような手段を採るかで少々悩みます*2。 direnv を用いるのがベター Goreman で…

VS Code のデバッグツールで Yarn の ウォッチ を走らせる

本来的な使い方ではないですが、応用が効くかもしれませんので記しておきます。 やりたいこと VS Code のデバッグツールを使って、例えば $ yarn webpack:watch のようなコマンドを裏で走らせたままにしておきたい。 結論 (launch.json) 上記のことをやるた…

Ubuntu で phpenv を用いて PHP をビルドする際に必要なライブラリをインストールする

結論 $ sudo apt install -y libjpeg-dev libonig-dev libzip-dev libcurl4-openssl-dev re2c libxml2-dev libtidy-dev libxslt-dev libmcrypt-dev libreadline-dev autoconf 補足 もっと必要なものがあるかもしれません*1 phpenv に限った話ではなく、一般…

VS Code の「GitHub Pull Requests and IssuesPreview」拡張機能において複数アカウントを使い分ける方法

「GitHub Pull Requests and IssuesPreview」とは こちらです。 marketplace.visualstudio.com 結論 現時点(2021/01/04 時点)では、ありません*1。 関連Issue github.com 補足 別のアカウントを使う度に「ログアウト」「ログイン」を繰り返せば、複数アカ…

2020年の段階で私が知らないこと

はじめに 本記事のタイトルは、以下の記事にならっています。 overreacted.io また、以下の記事に触発されています。 blog.unasuke.com zenn.dev 結論 以下のことをほとんど知りません。 Go React TypeScript Prisma GraphQL Cypress 焦り 上記のことに無知…

Git におけるユーザーの使い分けの一つの方法

結論 .git/config の [remote "origin"] の url 内にユーザー名を埋め込んでしまう。 例 [remote "origin"] url = https://USER-MEI-WO-IRERU@github.com/foobar/hogehoge.git 補足 この方法を使うためには、git clone 時のプロトコルを HTTP(S) にする必要…

Visual Studio Code で git のコマンドの場所が検出できなくなったとき

結論 手動で設定します。 方法 「設定」→「拡張機能」→「Git」とたどっていくと、「Git: Path」の設定項目があります。そこにある settings.json で編集 をクリックし、設定ファイルを直接編集します*1。 settings.json に "git.path" をキーとした設定項目…

PostgreSQL で初期ユーザとしてログインする

結論 操作ユーザを postgres に変更する $ psql -U postgres -d -postgres を実行してログインする 詳細 1. 操作ユーザを postgres に変更する su コマンドを用いて操作するユーザを postgres に変更します。 $ sudo su postgres 2. ログインしてみる 以下の…

Ubuntu 20.04 にて PostgreSQL を初期化する方法

結論 /usr/lib/postgresql/13/bin/initdb を、ユーザ postgres で実行する。その際にデータベースのデータを格納するディレクトリをオプションで指定する。 具体例 1. 操作するユーザを postgres に変更します $ sudo su postgres 2. /usr/lib/postgresql/13…

Git における「インデックス」という語と「ステージング」という語の関係はいかなるものか

結論 同じ意味である(「インデックス」=「ステージング」)。 感想 Git の理解が難しい理由の一つには、同じ意味の用語が複数あって、人や場合によって使われる語が異なるケースがあるからだと思っています。 初心者の頃にいろいろな説明を読みまくってい…

VS Code にて Remote SSH で接続した先で一部の拡張機能がインストールされない場合

gyazo.com 結論 手動で入れるしか無いようです(2020/09/22 現在)。 状況例 Vetur にしろ Todo Tree にしろ、下記のように SSH先 では手動でインストールしなければならないようです。同期機能は ON にしています*1。 gyazo.com gyazo.com 試していないけれ…

MySQL のデータディレクトリを外付けHDDに移す

背景 Raspberry Pi 4 (8GB) を購入し、MySQL のサーバにしたいと思いました*1。MicroSDの容量は限られているのと、データベースのようなアクセス頻度が高いものをMicroSDに置いた場合のカードの寿命を考え*2、外付けHDDにデータを置きたいと考えました。 *1:…

PostgreSQL のデータディレクトリを外付けHDDに移す

背景 Raspberry Pi 4 (8GB) を購入し、PostgreSQL のサーバにしたいと思いました*1。MicroSDの容量は限られているのと、データベースのようなアクセス頻度が高いものをMicroSDに置いた場合のカードの寿命を考え*2、外付けHDDにデータを置きたいと考えました…

なるべく無駄を省いて開発するために git bisect を使うという方策

※ 結構やっつけで書いているので、読みにくいところがあるかもしれません 結論 こまめにコミットする git-now を私は使っています テストをちゃんと書く

RSpec (System Spec) の実行に Chrome を用いるために ChromeDriver をインストール・ダウンロードする

結論 以下のページから最新版のバイナリをダウンロードし、パスが通った場所に実行可能状態で配置すれば OK です。 補足 RSpecの〜 という標題にしましたが*1、もちろん他の用途にも使えます。 *1:ググラビリティを考慮

Git でマージコミットを rebase する方法(-p オプション)

根本的な考え方 マージコミットを「消す」 具体的なコマンド -p オプションを使います -p オプションの具体的な使い方 -p オプションの引数として、「消したいマージコミットの一つ前のコミットハッシュ」を指定します -i オプションと併用した場合は、例え…

pm2 で扱う各アプリケーションの Node のバージョンを上げる方法

pm2 とは 結論 $ pm2 start HOGEHOGEAPP --update-env 参考

Powered by はてなブログ