ソフトウェア開発

Docker で起動している MySQL にて mysqldump コマンドを実行したら Can't connect to local MySQL server through socket '/tmp/mysql.sock' エラーが出たとき

結論 mysqldump コマンドで具体的にソケットの場所を以下のように指定します。ソケットファイルは MySQL のデータディレクトリに存在しています*1。 デフォルトではホストのマシンにインストールされている MySQL のソケットファイルを見に行こうとするので…

VSCode で SSH した先の GUI アプリを VSCode のターミナルから実行して手元で表示させる方法(拡張機能なし)

動機 SSH 先で開発しているときにも Cypress や、ブラウザを表示させた上での RSpec (Capybara) を実行したい Webページを経由する認証にて、SSH 先の Webブラウザ で認証したい*1 結論 まず制限事項があります。それは「別途、当該 SSH 先に接続し続けてお…

git stash でコンフリクトした際に戻すには git reset --merge する

結論 標題のとおりです。 $ git stash --abort を誰もが一度は即座に実行するかと思いますが、そういうオプションは今のところ無いので、$ git reset --merge で戻します。 補足 $ git stash pop を実行した結果コンフリクトしたとします。 その後に $ git r…

GitHub Actions の Secrets を $ gh secret set で渡すときに \n が含まれているときはファイル出力経由で渡す

具体例 "foo\nbar\nhoge\nfuga" という文字列を MY_SECRET という Secrets で渡したいとします。 だめな例 $ gh secret set MY_SECRET "foo\nbar\nhoge\nfuga" OKな例 まず \n を改行に変換したテキストファイルを用意します*1。 以下のテキストファイルを m…

GCP の料金を「サービス別に」見る方法

結論 1. メニューから「お支払い」を選ぶ gyazo.com 2. 詳細メニューから「レポート」を選ぶ gyazo.com 3. パネルメニューの「フィルタ」の「プリセット」から「今月、すべてのサービス」を選ぶ 必ずしも「今月」である必要はありません。 gyazo.com 4. サー…

nodenv を使っていて npm install -g したバイナリが実行できないときは nodenv rehash する

前提 たとえば以下のようになるときです。 $ npm install -g @devcontainers/cli $ devcontainer --help zsh: command not found: devcontainer 結論 $ nodenv rehash します。 補足 $ nodenv rehash した際に以下のようにエラーが出るときがあります。 $ no…

git config user.email や git config user.name を環境変数で設定する方法

結論 以下の環境変数を設定する。 GIT_COMMITTER_NAME GIT_COMMITTER_EMAIL GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL ドキュメント git-scm.com (参考)Authot と Committer の違いは? author と committer は何が違うのか気になる方もいるでしょう。 authorとは…

gh コマンドで複数アカウントを使い分ける方法

結論 GH_CONFIG_DIR 環境変数を用いて gh の設定ファイル*1の置き場をアカウントごとに指定する さらに GH_CONFIG_DIR の指定には direnv を用いることで、プロジェクトごとにアカウントの切り替えができる ドキュメント cli.github.com *1:config.yml と ho…

Cloudflare の DNS 設定の項目にメモ欄が追加された

結論 各々の項目について、入力内容に「メモ」が追加されています。 感想 以前からほしいほしいと思っていた機能なので*1、とてもありがたいです。 これまでは別途 Scrapbox に書いてメンテしていました。 *1:数が多くなると、久しぶりに触ったときの思い出…

Windows の VS Code が product.json の不備により突然起動しなくなったので直した

結論(直し方) 再インストール(上書きインストール)する。 インストーラを落として普通にインストールすれば上書きインストールしてくれる。 症状 resources/app/product.json が謎のバイナリファイルになっていて、VS Code 起動時に怒られた*1。 なぜそ…

Clasp もろもろまとめ

Clasp について、書き殴りに近いですがまとめです。 Clasp について 1. $ clasp login Google アカウントにてログインをして、Clasp 用の権限を得る。 $ clasp login これにより、~/.clasprc.json が作成される。 2. $ clasp clone 既存のプロジェクトを持っ…

Tailwind で任意の値(数値)を使えるクラス名に変数を用いることは現状実質不可

前提 JIT で入ったこのあたりの記法です。 v2.tailwindcss.com <img class="absolute w-[762px] h-[918px] top-[-325px] right-[62px] md:top-[-400px] md:right-[80px]" src="/crazy-background-image.png"> <button class="bg-[#1da1f1]">Share on Twitter</button>

GitHub Actions でブランチ名を指定する時に全てのブランチ指定には '**' を使う

結論 '*' だと例えば feature/foobar などが対象になりません。 具体例 on: push: tags-ignore: - 'v*.*.*' branches: - '**' jobs: hogehoge_job:

apt で Java 18 が入らなかったので手動で入れる

結論 jdk.java.net から .tar.gz で落としてきて、展開してディレクトリをパスの通った場所に置きます 展開したディレクトリの配下の bin/ にパスが取っていないと各種コマンドが実行できないので注意 具体的方法 ダウンロードする jdk.java.net Linux/x64 …

Cloudflare D1 の ORM である "D1-Orm" を使う

D1-Orm とは リポジトリ github.com ドキュメント docs.interactions.rest 使い方 単純に SELECT するだけのコードを書いてみます。 Wrangler や Cloudflare Workers についての説明は省略します。 1. $ wrangler init する まず $ wrangler init してサービ…

Cloudflare Workers の「ルート」の設定画面はどこにあるか

Basic 認証をつけようと思ったら「ルート」が見つからなくて 30分 くらいハマりました。 注意点 2022/12/15(木)現在の話です。 結論 パターン1. 「現在の画面が、ドメインのカテゴリレベルの画面のとき」 左上の CLOUDFLARE のロゴの下に書いてある文字列…

WSL2 の ディスクイメージ はどこにあるか

結論 C:\Users\USERNAME\AppData\Local\Packages\CanonicalGroupLimited.* 補足 厳密には、ディスクイメージである .vhdx ファイルは以下のところにある*1。 C:\Users\USERNAME\AppData\Local\Packages\CanonicalGroupLimited.*\LocalState\ext4.vhdx *1:イ…

Vercel CLI の認証情報ファイルはどこにあるか

Vercel CLI とは Vercel をコマンドラインから操作できるツールです。 vercel.com Vercel CLI の認証情報ファイルはどこにあるか ~/.local/share/com.vercel.cli 中身 ファイルの一覧 $ pwd /home/takiya/.local/share/com.vercel.cli $ ls -la drwxr-xr-x f…

YouTube のライブ配信待ちの通知オンオフの文言

具体例(画像) gyazo.com gyazo.com 「現在の状態」と「押した後の状態」の2つの状態がどうなのかがわからない 「通知する」と書かれている状態は、 「現在の状態」は「通知されない状態」 「押した後の状態」は「通知される状態」 である。 「通知オン」と…

簡易的に Webページ をキャプチャしてその画像を OCR にかけてテキストを抽出する方法

結論 OCR には Tesseract を用います Webサーバ には PHP の ビルトインWebサーバ を用います Webページ の 画像キャプチャ には capture-website-cli を用います ここは Npm 依存です 具体的方法 GitHub Actions で CI として動かす形で書いてみます。 テキ…

CircleCI で Chrome や chromedriver、Firefox や Gecko を入れる際には circleci/browser-tools という Orb が便利

結論 これです。 circleci.com 使い方 Orb を指定します。バージョンは適宜書き換えてください。 orbs: browser-tools: circleci/browser-tools@1.4.0 あとは steps に所定の記載をしていけばいいです。たとえば Chrome および chromedriver をインストール…

CircleCI で cimg/ruby:3.* のイメージには php も python も webrick も node も入っていない

結論 公式ドキュメントは以下。 circleci.com gyazo.com なぜこれを気にしたのか monorepo っぽい構成になっているプロダクトにおいて、静的な Webページ のテストを走らせるためにワンライナーの Webサーバ を立ち上げようとしたから。 $ php -S や $ pytho…

Wrangler (Cloudflare CLI) で ~/.wrangler/config/default.toml を用いてアカウントを無理やり使い分ける方法

結論 ユーザーアカウント別の TOML ファイルを半自動で作成する 対象アカウントごとに $ wrangler login する ファイル名(パス)は ~/.wrangler/config/default.toml になる 使いたいアカウントの TOML を ~/.wrangler/config/default.toml に置き換える 補…

Wrangler (Cloudflare CLI) でアカウントを使い分ける方法

結論 以下のいずれかの方法を用いる。 wrangler.toml を使い分ける wrangler.toml は各プロジェクトルート配下に置かれるファイル リポジトリに含めることが前提のファイルなので、複数人で共有する場合に用いるのがよさそう 環境変数 CLOUDFLARE_ACCOUNT_ID…

firebase-tools (Firebase CLI) の設定ファイルはどこにあるか

結論 ~/.config/configstore/firebase-tools.json

突然 ctrl + r で fzf が動かなくなったら zplug のプラグインが原因だった

現象 突然 unknown option: --scheme=history が出てしまい、ctrl + r による履歴検索が使えなくなった。とても不便。困った。 結論 junegunn/fzf-bin を削除した。 単に .zshrc 内の記述を削除するだけでなく、~/.zplug/bin 配下のシンボリックリンク(の実…

Apache2 で HTTPS を受け付けてくれないときにまずやること

結論 $ sudo a2enmod ssl

Cloudflare を使っていて開発時などに強制的にキャッシュを削除したい場合

結論 その1 Caching ->「構成」->「キャッシュをパージ」でパージするファイルを指定する その2 Caching ->「構成」->「開発モード」を ON にする 注意点 「その1」の場合 キャッシュを削除したいときに毎回実行する必要があります ワイルドカードは使えませ…

VS Code の Dev Containers を実行しようとした時に "Docker version 17.12.0 or later required" と表示されるときの対応方法

前提条件 Docker version 17.12.0 以降はインストールされているものとします。 結論 設定の Dev > Containers: Docker Path を適切なものに書き換える。 考察 macOS だとこの現象が出ました。おそらく /usr/bin/docker を見に行って見つからないためにこの…

Cloud Run をカスタムドメイン(独自ドメイン)で公開するために Cloudflare を使う方法

やり方 特に難しいところはないです。 1. Cloud Run の「サービス」メニューから「カスタム ドメインを管理」をクリックする ここです。 2. 「マッピングを追加」をクリックして情報を入力していく 注意点がいくつかあります。 2-1. マッピングに対応してい…

Powered by はてなブログ