Activerecord-Import で大量のデータをバルクインポートしようとすると PostgreSQL が落ちる

Activerecord-Import とは github.com 結論(どうするか) インポート時に batch_size オプションを指定してやる。 具体例 User.import!(users, batch_size: 10000) PostgreSQL が落ちたときのエラーメッセージ PQconsumeInput() SSL SYSCALL error: EOF det…

SwitchBot の ブラインドポール を手動で充電する方法

結論 ここです。設置場所を考えると数メートルの USBケーブル を用いるのが無難です。 長い USBケーブル は一本持っておくといろいろ便利で、たとえば SwitchBot のカーテンレールの充電にも役立ちます。

Ruby で "sh" を実行しようとしたら Not Found と言われたとき

結論 require 'rake' をする。 公式ドキュメント docs.ruby-lang.org

.dot ファイル (Graphviz) を PDF に変換する方法

結論 Graphviz (CLI) はインストール済みであるとします。 $ dot -Tpdf /path/to/hoge.dot -o /path/to/fuga.pdf 具体例 Rails ERD では dot で出力が可能なところ、その dot を PDF に変換するために有用です。 「Rails ERD で最初から PDF に出力すると Gi…

GitHub Actions で ubuntu-22.04 で Cypress を Firefox で実行する際は deb 版を入れる

結論 標題のとおりです。 具体的方法 参考ページ deb版の入れ方については以下のページが参考になります。 chatnoirlibre.com 99mozillateamppa の適用のさせ方 99mozillateamppa の適用のさせ方は、どこかに 99mozillateamppa という名前と内容のファイルを…

gh secret set コマンドを submodule 内で実行すると submodule のリポジトリに登録されてしまうので注意

結論 標題のとおりです*1。 具体例 REPO/sub 配下が submodule だとして、たとえば以下のように gh secret set したとします。 $ cd sub $ gh secret set HOGE< fuga.txt ✓ Set Actions secret HOGE for username/sub 以上のように submodule の方のリポジト…

「しゃべりすぎGAMER」にて 百英雄伝 の話題が

28:17ぐらいから32:44ぐらいまで www.youtube.com

Rails でテスト環境の migration が更新されない場合は schema.rb がそのままの可能性が高い

結論 標題通りです。 マイグレーションのコードをテストと同時に書いていた際にハマりました。直接コマンドで db:migrate(:reset) すると schema.rb を見に行き、schema.rb の更新作業が走っていない場合には例えば UNIQUE制約 などが変更されません。 DBが…

Prettier + VSCode でエラーが出て自動フォーマットできないとき

gyazo.com 現象 github.com 結論(これで解決した) プロジェクトに Prettier を入れて Prettier Path には ./node_modules/prettier を指定する。 それまでは nodenv を用いた上でグローバルに入れていた*1が、プロジェクト配下に入れることで解決した。 *1…

Cloudflare Pages の初回 GitHub 連携が 8000000 エラーになるときの対処法

結論 GitHub 側で一度 Cloudflare のアプリを削除してから再インストールする。

MeCab の辞書をビルドするときに文字コードが euc-jp になってしまう場合の対処方法

結論 mecab-ipadic-2.7.0-20070801 を --with-charset=utf8 のオプション付きでビルドする。 $ ./configure --with-charset=utf8 Natto で確認する 期待通りの挙動になっているかを Natto で確認します。 > require 'natto' > nm = Natto::MeCab.new => #<Natto::MeCab:0x00007f2546c63280 @model=#<FFI::Pointer address=0x0000561020b78620>, @</natto::mecab:0x00007f2546c63280>…

トライアンドエラーを回すときのコツ

自分が意識していることは次のとおりです。 まずは(半)手動で回せるようにする 手動で回すのが面倒になってきたら自動化を考え始める 原則として必要になるまでは自動化は考えない方向で いきなり自動化すると見えなくなってくるものもある 自動化の際はそ…

OBS で「ドック」に「配信情報」が出なくなってしまった場合の対処法

状況 こういう感じで「配信情報」などが出なくなってしまった場合です。 gyazo.com 結論 1. 「設定」→「配信」から「アカウントを切断」し、再接続する。 gyazo.com 2. 再度現れる gyazo.com

マージコミットを必ず生成するか (--no-ff) かどうか

結論 チームによる。 自身の現実 様々な場面でどっちも使いたいことがあるので、デフォルト*1を決めて .gitconfig して、そうじゃない場合にはオプションを使うというふうにしています。 *1:--no-ff

IFTTT の Twitter (X) 連携にて一部の記法が使用不可に

結論 Twitter changes to search formatting

Ruby で Time.parse しようとすると undefined method `parse' for Time:Class のエラーが出るとき

結論 require 'time' する。

GAS で createFile(BLOB) に対してファイル名を付与する方法

結論 const createdFile = currentFolder.createFile(BLOB) createdFile.setName('HOGE.JPG') 補足 createFile(BLOB) の戻り値がファイルオブジェクトであることを利用します 作ってから直後にファイル名を変更する、という方法です

Ubuntu Desktop を使って Desktop ログイン をしていると CUI で X11 を Forwarding できない

結論(どうするか) デスクトップモードをオフにする。 $ sudo systemctl set-default multi-user.target 背景 Authorization required, but no authorization protocol specified とか xhost: unable to open display "" のいつものエラーが出て混乱するが…

Heroku でデプロイ時にシェルスクリプトを実行するためには .profile を作って書く方法もある(問題点あり)

結論 標題通りです。 Procfile に release タグで書いてもうまくいかないときもあります。これはずばり「リリースフェーズ中のファイルシステムの変更はアプリの Dyno formation にデプロイされない」ということが理由です*1。 この場合は .procfile に書く…

Squid で「通常はBasic認証をかけるが特定の IPアドレス からは許可する」設定を書く方法

結論 他のソフトウェアの設定書式と同様に「優先的な設定を上に書く」とよい。 具体例 OK な書き方 foobar の ACL である時点で allow されるので、OK。 # 特定の ACL からは許可する http_access allow foobar # 認証 auth_param basic program /usr/lib/sq…

Ruby で Google::Apis::DriveV3 を用いて Google Drive のファイルを操作する方法

前提条件 サービスアカウントを用いて認証を行うとします 使う gem google-api-client google-apis-sheets_v4 でもいいですが、名前が適切な方が誰からも分かりやすいので google-api-client がよいと思います 注意事項 当該ドライブ(フォルダ等)に、サー…

VS Code で RuboCop の formatOnSave を Gemfile に対しても有効にする方法

結論 settings.json に以下を書き加える。 "files.associations": { "**/Gemfile": "ruby" }, 背景 Gemfile は Ruby のファイルとはみなされていないのでフォーマッタが働かない。明示的に ruby だよ、と指定することで、Ruby の書式*1 に則ったフォーマッタ…

ImageMagick の magick コマンドで画像を連結する方法

結論 縦に連結する場合 $ magick A.png B.png -append A_B.png 横に連結する場合 $ magick X.png Y.png +append X_Y.png 補足 連結する画像の枚数は 3枚以上 でも問題ありません。

Jotform を WordPress に埋め込む場合は

Web

結論 IFRAME を使う。 IFRAME を使わないと、縦が収まらないでスクロールバーが出てしまうから。 gyazo.com だめな方法 以下の 2つ はいずれもダメです。 1. 「プラットフォーム」で WordPress を選ぶ gyazo.com 2. WordPress のプラグインを使って専用書式…

Misskey で MinIO をオブジェクトストレージとして扱う方法

Web

結論 ポイントがいくつかあります。 Base URL にはバケット名まで書くこと Backet にはやはりバケット名を書くこと Prefix は必須なので何か書くこと*1 Region は MinIO 内で設定している内容と同じにすること gyazo.com *1:書かないと https://example.com/…

Misskey で SES をメールサーバとして用いる方法

Web

結論 特に難しいところはないです。 gyazo.com

Ubuntu に Misskey をインストールする時にハマったこと

Web

※ 2023/06/19 現在の情報です 箇条書きで pnpm が必須 メモリ(スワップ)不足でセットアップスクリプトで落ちる*1 frontend の vite build のところで JavaScript heap out of memory で落ちる packages/frontend build$ vite build │ vite v4.3.9 building…

sudo の再要求までの時間を伸ばす方法

結論 $ sudo visudo して以下を書き加える。 # 単位は「分」 Defaults timestamp_timeout=120 参考

git で commit する際の gpg の パスフレーズ を、一定期間キャッシュする方法

結論 ~/.gnupg/gpg-agent.conf に以下の二行を書きます。 default-cache-ttl 34560000 max-cache-ttl 34560000 数値の単位は秒です。 詳細 DeepL です。 default-cache-ttlオプションは、最後にGnuPGを使用した後のタイムアウト(秒)を設定し(使用するとリ…

Wrangler で login せずに環境変数だけで認証する方法

結論 CLOUDFLARE_ACCOUNT_ID と CLOUDFLARE_API_TOKEN を用いる。 例 $ CLOUDFLARE_ACCOUNT_ID=0123456789abcdef CLOUDFLARE_API_TOKEN=foobar-123456 wrangler r2 bucket list ドキュメント

Powered by はてなブログ