ソフトウェア開発

git pull をしたら突然 "fatal: bad object refs/remotes/origin..." というエラーが起きた場合の対処法

結論 1. $ git fsck を実行してエラーの箇所を特定します。 $ git fsck Checking object directories: 100% (256/256), done. Checking objects: 100% (301105/301105), done. error: refs/remotes/origin/feature/foo: invalid sha1 pointer 00000000000000…

VS Code で Markdown ファイルを開いたときに中国語のエディタが開かれる理由(拡張機能)

状況 gyazo.com 結論 Office Viewer (Markdown Editor) gyazo.com 補足 このエディタは vditor です。 github.com

Google Apps Script を開こうとすると「Google ドキュメント内でエラーが発生しました。」というエラーが発生するとき

結論 https://docs.google.com のクッキーを削除する。 状況 1. Apps Script を開こうとします gyazo.com 2. エラーになります 再読み込みをしたり、数分後にページを開き直したりしても解決しません。 Google ドキュメント内でエラーが発生しました。このペ…

MySQL が起動しないで "[InnoDB] Unable to lock ./ibdata1 error" が出続ける場合は裏で動いているプロセスを切る

状況 MySQL をスタートさせるとこんなログが出る状況です。 foobar | 2022-04-18T03:18:47.208332Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. foobar | 2022-04-18T03:18:47.281734Z 1 [ERROR] [MY-012574] [InnoDB] Unable to l…

CentOS 7 で Lua を make しようとしたときに「致命的エラー: readline/readline.h: そのようなファイルやディレクトリはありません」と出るとき

起きている現象 $ curl -R -O http://www.lua.org/ftp/lua-5.3.4.tar.gz $ tar zxf lua-5.3.4.tar.gz $ cd lua-5.3.4 $ make linux test lua.c:82:31: 致命的エラー: readline/readline.h: そのようなファイルやディレクトリはありません #include <readline/readline.h> 結論 $ s</readline/readline.h>…

expect コマンドで "[" や "]" を表現する(エスケープする)ためには「バックスラッシュを3つ」用いる

結論 例えば以下の expect ですと、[y/N] という文字列を待つことになります。 expect -c ' expect "\\\[y/N\\\]" '

git commit を実行したらフリーズしてしまう場合の対処法(レア)

結論 gpg を再起動します。kill したあとは自動で起ち上がります。 $ gpgconf --kill gpg-agent 状況 相当待つとエラーメッセージが出ました。 $ git commit error: gpg はデータを署名するのに失敗しました fatal: failed to write commit object 補足 VSCo…

i18n-next や next-translate にてコロンが含まれていると正しく翻訳されない問題

結論(理由) デフォルトで名前空間のセパレータとして定義されているから。 以下は next-translate の README です。 gyazo.com どうするか 設定ファイルで定義を変えます。当然ながら名前空間側のの記述方法が変わってくるので注意が必要です。 next-trans…

GitHub Actions の ubuntu-latest に内包されている PostgreSQL を使う

結論 以下のようなアクションを書くと、 ホストは localhost ポート番号は 5432 ユーザー名は postgres_user パスワードは postgres_password な PostgreSQL が起動できます。 services での構築は不要です。 - name: PostgreSQL を起動する run: | # https:…

GitHub Actions で CircleCI のように SSHデバッグ をする方法

結論 "Debugging with tmate" を使う。 github.com 使い方 使い方は公式ドキュメントに詳しく書かれています。 mxschmitt.github.io 以下の画像のような感じで SSH の接続情報が表示されるので、コピペして ssh コマンド を実行すればログインできます*1。 g…

WSL2 かつ Ubuntu 22.04 にて snap を用いないで Firefox を使う

結論 以下のページのとおりです。snap やら systemd やらの面倒なことは飛ばせます*1。 www.omgubuntu.co.uk 元に戻す時 以下のファイルを消せば(だいたい)なかったことになります。 /etc/apt/sources.list.d/mozillateam-ubuntu-ppa-jammy.list /etc/apt/…

Vue Test Utils にてコンポーネントを遅延読み込みしている際に出る Vue warn への対応

#結論 コンポーネントをマウントするときに stubs プロパティを用いて明示的にスタブ化する。 具体例 以下のような感じでコンポーネントを遅延読み込みしているとします。 components: { ChienComponent: () => import("path/to/chien_component") }, この…

Cypress にて「ある要素が持つテキストを配列として取得してその内容をテストする」方法

前提 以下のような HTML があるとして、この4つの文字列を配列として扱い、期待通りであるかどうかをチェックするテストを書きたいとします。 <div class="hoge fuga">ああああ</div> <div class="hoge fuga">いいいい</div> <div class="hoge fuga">うううう</div> <div class="hoge fuga">ええええ</div> 結論 jQuery のメソッドを使います*1。 具体的には以下のようになります。 …

Discord.js でスラッシュコマンドの登録を解除する方法

結論 空のコマンドの配列 [] を登録する。 例 discord.js Guide の こちらのページ の例でいうと、次のようになります(関連箇所だけを抜粋)。 rest.put(Routes.applicationGuildCommands(clientId, guildId), { body: [] }) .then(() => console.log('Succ…

ビルドされた最新の FFmpeg (ffmpeg & ffprobe) をインストールする方法

結論 johnvansickle.com インストール方法詳細 自分のマシンのアーキテクチャに適した .tar.xz をダウンロードします $ tar xzf ダウンロードした.tar.xz で展開します 展開したディレクトリの中にある ffmpeg と ffprobe をパスの通った場所にコピーします …

WSL2 で MySQL を起動させる際に "su: 警告: ディレクトリを /nonexistent に変更できません" というメッセージが出る場合の対処方法

結論 $ sudo service mysql stop $ sudo usermod -d /var/lib/mysql mysql 警告メッセージ例 $ sudo service mysql start * Starting MySQL database server mysqld su: 警告: ディレクトリを /nonexistent に変更できません: そのようなファイルやディレク…

Railway に CLI を用いてデプロイ(など)をする方法

Railway とは Heroku のような PaaS です。 railway.app 結論 「トークン生成」→「CLI インストール」→「コマンド実行」の流れです。 1. トークン生成 Project Settings のページの Tokens のメニューに行き、New Token にてトークンを生成します。 トークン…

Ubuntu 20.04 にて wxPython インストール時に "*** Could not run GTK+ test program, checking why..." というエラーが出る時

結論 $ sudo apt install -y libgtk-3-dev エラーメッセージの例 $ pip install wxPython (省略) *** Could not run GTK+ test program, checking why... *** The test program failed to compile or link. See the file config.log for the *** exact err…

Capybara で CSSフレームワーク を用いた SPA をテストするのがつらい(レンダリング確定のためにウィンドウサイズ変更したり)

理由 「たまに落ちる」が発生する sleep や rspec-retry を使わないとうまくいかないことがある sleep や rspec-retry は極力使うべきではない*1と思うので、超苦肉の策 マイナーなメソッドを探さないといけないことがある 経験上、検索してもなかなかたどり…

Ubuntu 20.04 で phpenv にて PHP をインストールしようとした際に oniguruma が not found になった場合

結論 $ sudo apt install -y libonig-dev (参考)エラー時に表示されるメッセージ $ phpenv install 8.1.2 [Info]: Loaded extension plugin [Info]: Loaded apc Plugin. [Info]: Loaded composer Plugin. [Info]: Loaded github Plugin. [Info]: Loaded up…

Render が落ちすぎる(応答が遅すぎる)ので見送る

Render とは いわゆる PaaS です。Heroku とかと同じ感じのやつです*1。 render.com 落ちまくる 以下、Freeプラン での話です。 とある個人開発の本番サーバとして使おうとしばらく様子を見ているのですが、どうも落ちまくります。リージョンにより差異はあ…

Heroku に GitHub からではなく git コマンドから直接デプロイする方法

背景 2022/04/16 のトークン流出の件を受け、GitHub 連携ではなく直接 git コマンドからデプロイしたい(しなければいけない)。 結論 1. Heroku の CLI をインストールする します。 devcenter.heroku.com 2. git のリモートリポジトリとして Heroku のリポ…

Google Compute Engine の Always Free のスペック(2022年2月13日(日)現在)

前提 リージョンはオレゴン ゾーンは us-west1-c マシンタイプは e2-micro CPU プラットフォームは Intel Broadwell GPU は なし イメージは ubuntu-2004-focal-v20220204 ストレージは 標準永続ディスク を 30GB 結論 Mackerel のスクリーンショットより gy…

Danger JS で「変更行数」を取得する方法

Danger JS とは danger.systems 結論 ;(async () => { const changedNumberOfLines = await danger.git.linesOfCode() // ここに処理を書く })() 背景 1. Ruby版の lines_of_code メソッドは使えない undefined が返ってくる。 gyazo.com 2. 検索しまくって …

GitHub Actions における「バッジ (Status badge)」を表示させるときの注意点

やり方(前提) やり方自体は以前に書いたとおりです。 obel.hatenablog.jp 注意点 2022年4月13日(水)時点では、Webインターフェイスから用意されている Create status badge を用いて作成しようとすると、一部の条件の下では no status になってしまいま…

Danger (JS) を GitHub Actions で導入する

結論 作成するファイルは以下の 2つ です。 .github/workflows/danger_js.yml ファイル名は何でも良いです 単独のファイルとして切り出さず、既存の yml に内容を追加しても大丈夫です dangerfile.js ファイルの内容 2つのファイルの内容は次のとおりです。 …

psql コマンドを使って表示した結果のページャ(less等)の処理をスキップしたい時

結論 -P pager=off オプションを付与します。 例 例えば、以下のようにコマンドを実行すればページャが発動しません。 $ psql -P pager=off -U foo-p 5432 -d my_database -h localhost -c "SELECT relname, n_live_tup FROM pg_stat_user_tables WHERE sche…

proxy2ch を Ubuntu (x64) で make すると失敗するときの対処法

proxy2ch とは prokusi.wiki.fc2.com proxy2ch のリポジトリの場所 notabug.org make すると起きる現象 $ make g++ main.o BBS2chProxyConnection.o BBS2chProxyAuth.o DataStorage.o hmac.o stringEncodingConverter.o BBS2chProxyRawSocket.o BBS2chProxyS…

expect で「色付き文字」や「太文字」を待つためには "set" でエスケープを定義し、"${}" でその定義を読み出して対応する

結論 たとえば以下のように書くと、「太文字」である foobar を待ちます。 set 命令にて bold_black という変数に「太文字にするよ」という内容を定義し、それを用いています。 expect -c ' set bold_black "\033\[1m" expect "${bold_black}foobar" ' 詳細 …

TypeScript を用いる時に Cypress と Jest を共存させると "expect" などがコンフリクトして VS Code に怒られるとき

前提 TypeScript を用いている Jest を使っている Cypress を使っている テストも TypeScript (ts-jest) を使っている モノレポである*1 「型 Assertion に存在しません」ととにかく怒られるとき 実行自体は可能だが VS Code で怒られる 状況 expect を用い…

Powered by はてなブログ