Mac で mimemagic をインストールしようとした際にエラーが出る場合の対処法

gyazo.com 現象 以下のようなエラーメッセージが出る場合です。 An error occurred while installing mimemagic (0.3.9), and Bundler cannot continue. Make sure that `gem install mimemagic -v '0.3.9' --source 'https://rubygems.org/'` succeeds befo…

Windows の Android SDK コマンド adb を実行した時に「AdbWinApi.dllが見つからない」エラーが出たときの対処方法

結論 AdbWinApi.dll を管理者権限外の場所に移動する*1。 (参考)adb のダウンロード場所 developer.android.com *1:ダウンロードしたツールのフォルダ一式を移動する

git の hooks(pre-commit など)が動かない時に確認すること

結論 .git/config の [core] の部分に hookspath が指定されているかどうかを確認する。 具体例 git/config に以下のように書き加えます*1。 [core] (省略) hookspath=.git/hooks (以下省略) *1:標準のディレクトリ構成の場合

Twitter REST API の trends で用いる WOEID の一覧(日本)

結論 以下のとおりです。 Kitakyushu: 1110809 Saitama: 1116753 Chiba: 1117034 Fukuoka: 1117099 Hamamatsu: 1117155 Hiroshima: 1117227 Kawasaki: 1117502 Kobe: 1117545 Kumamoto: 1117605 Nagoya: 1117817 Niigata: 1117881 Sagamihara: 1118072 Sappo…

VSCode の Ruby Test Explorer を用いる際にテスト対象 Spec が表示されない場合

結論 設定の Test Framework の項目で明示的にテストに用いるフレームワーク*1 を指定するといける場合があります。 gyazo.com *1:RSpec とか Minitest とか

RSpec で特定のテストだけを実行する方法

結論 --example オプションを使い、その値として「テストの名前」を入れます。 例 以下のような Spec があったとします。 feature 'おはよう' do scenario 'こんにちは' do # ここにテストが入る end end このとき、このテストを実行するためには次のコマン…

VSCode で RuboCop や Solargraph や Ruby Test Explorer が実行できないときの一つの解決法

結論 コマンドの実行パスを絶対パスで書く。 実例 以下は Ruby Test Explorer の設定です。ここで実行コマンドパスを設定する箇所において、絶対パスでパスを記述します。 例えば、 .rbenv を使っている場合は /home/ここにユーザー名が入る/.rbenv/shims/bu…

Google Tag Manager の データレイヤー の変数名は 'dataLayer' という名前で固定(変更は可能)

結論 標題のとおりです。dataLayer という名前はいわば予約語です。 公式ドキュメント support.google.com dataLayer という名前を変更する方法 変更したい場合には GTM の URL に l(アルファベット半角の「エル」) というパラメータを追加し、その値に対…

Ruby の Twitter の gem にて、凍結ユーザの 'name' は Twitter::NullObject で返ってくる

gyazo.com 結論 標題の通りなので、たとえばデータベースにユーザデータを格納しようとする際に name に NOT NULL 制約をかけていたりバリデーションをかけていたりすると、エラーになります。 対処法の一つとしては Twitter::NullObject のときは例外として…

スプレッドシートでの TRUE または FALSE は、GAS 上では小文字の文字列('true' または 'false')扱い

gyazo.com 結論 とあるセルに TRUE あるいは FALSE というデータが格納されているとき、GAS 上での判別は以下のようになります。 // targetCell に TRUE というデータが格納されているとします console.log(typeof targetCell); // string console.log(targe…

Ruby の Twitter gem で DM を取得するときの注意点 (REST API)

結論 初回は @client.direct_messages_events(count: 1) で取得し、その戻り値から next_cursor を得て、それを用いて次回は @client.direct_messages_events(count: 1, cursor: next_cursor) で取得します。 next_cursor に nil が返ってきたら取得完了です…

material-table を使う際に検索欄やページングカーソル欄に se や fir などのアルファベットが表示される場合の対処法

material-table とは github.com 現象 こういう感じになる現象です。 gyazo.com 結論 fonts.googleapis.com から Material Icons をインポートしましょう。 <head></head> 内に以下を書き加えます*1。 <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons" /> 修正結果 上記のインポートの結果、以下のようになりました。 gyazo.</link>…

Ruby で Google API を google-api-ruby-client を使って操作する際に Google::Apis::TransmissionError が出る場合の対応

結論 リトライをする(こちらのせいではない)。 具体的方法 以下にリトライをするための方法が書いてあります。 github.com client.request_options.retries = 3

GitHub Actions で RSpec (Capybara) を実行するための driven_by の options 引数の設定

現象 次のようなエラーが出る場合の対処法です。 Selenium::WebDriver::Error::UnknownError: unknown error: Chrome failed to start: exited abnormally. (unknown error: DevToolsActivePort file doesn't exist) (The process started from chrome locat…

GitHub Actions でアーティファクトを保存するときには with: name: をアルファベットにしないと "Computed hash does not match with url signature" になる

結論 以下のように書くと、アーティファクトのリンクをクリックした先で Computed hash does not match with url signature というエラーが出ます*1。 (省略) - name: アーティファクトの保存を行う if: failure() uses: actions/upload-artifact@v1 with:…

apt を使って Node.js の任意のバージョンをインストールする

CI にて有用な方法と思います。 結論 たとえば、 v16 系を入れたい場合には以下のコマンドを実行します。 $ curl -sL https://deb.nodesource.com/setup_16.x | sudo bash - $ sudo apt update $ sudo apt install -y nodejs 補足 npm も最新版まで上げるに…

Nextcloud で消せないファイルやフォルダが出てきたとき

結論 1. (念のため)アクセスがない状況にする サーバを落としたり、Docker で起動しているならばコンテナを止めます。 2. ファイルがあるディレクトリに移動 data/ユーザー名/files に移動します。 3. 該当ファイルやフォルダを削除する 「2.」のディレク…

Nextcloud を Docker Compose で使用している時にバージョンアップをする方法

結論 1. 実行を停止する $ docker-compose down 2. docker-compose.yml に最新バージョンを記述する latest の場合はこの項目は飛ばして OK (省略) image: nextcloud:21.0.2 (省略) 3. 起動する 結構時間がかかります。 $ docker-compose up -d 注意点 …

Ruby の all? メソッドはレシーバが [] の場合は true を返すので注意が必要

結論 標題の通りで、知っている人には当たり前なのですが、以下のような戻り値になります。 [].all? { |foo| foo == 1 } #=> true どうするか all? を使わないようにすればこのハマりやすい返り値から逃れられます。もし all? を使う場合には、レシーバが []…

Rails で NOT NULL なカラムに DEFAULT値 が入るタイミングに注意(自分で nil を代入した場合は NG)

結論 標題で全てな気がするのですが、以下の例のとおりです。自前で nil を代入した場合には、そのカラムは DEFAULT の値が自動で入ってくれません*1。 例として、User というモデルを使います。ここで、height というカラムに NOT NULL 制約がついていて、D…

Windows のバッチファイルの文字コードは Shift JIS でなければいけない

結論 標題のとおりです。 Shift JIS でないと何が起こるのか 日本語ファイル名やフォルダ名を含んでいると実行に失敗します。echo で日本語を表示しようとした際も化けます。

WSL2 の Capybara (RSpec) で "ChromeDriver is assuming that Chrome has crashed" などのエラーが出たときの解決方法の一つ

結論 google-chrome と chromedriver のバージョンを変える(まずは最新の安定版で試す)。 参考 2021/05/20 時点で正しく動いているバージョンの組み合わせは次のとおりです。 $ google-chrome --version Google Chrome 90.0.4430.212 $ chromedriver --ver…

コマンドライン(CLI)で Windows の CD /DVD /BD ドライブ を開閉する(Stream Deck を使って手元のボタンで開閉する)

結論 NirCmd を用います。最新版のリリース日は 2019/01/08 ですが、現時点での Windows 10 でも問題なく動作します。 www.nirsoft.net ページの一番下に以下の画像のようなダウンロードリンクがあるので、Download NirCmd 64-bit をクリックしてダウンロー…

VS Code で .tsx ファイルを Prettier で保存時自動整形する

結論 settings.json に [typescriptreact] という key を使って Prettier を使うということを明示的に書きます。 具体例 { (省略) "[typescriptreact]": { "editor.formatOnSave": true, "editor.defaultFormatter": "esbenp.prettier-vscode" }, (省略)…

Twitter API などの管理画面のページはどこにあるか(どこからたどれるか)

結論 Twitter Developers のサイトの最上部のメニューから Developer Portal を選んだ先にあります。 画像で示すと 以下の画像の右上のところのリンクです。 Developer Portal の中に入った際の画像 リンク先の Developer Portal の中は以下のようになってい…

Chrome のタブで「グループ」を作る場合は、全てのタブがどこかの「グループ」に属していたほうが良さそう

理由 一番右端の「グループ」以下(以右)に属しているタブが、一番右端の「グループ」に属しているかどうか分からず、操作時にストレスになるから。 具体例 以下の画像のような状態の時、Amazon のタブは独立しているのかそうでないのかわからない。 なので…

Rails で POST 時の ActionController::InvalidAuthenticityToken を自前の実装によって回避する

前提 CSRF対策を無効にするというのは原則避けるべきです form_authenticity_token というグローバルな変数にトークンが格納されています authenticity_token という params を POST 時に送っているので、そこに適切なトークンを格納すれば ActionController…

husky の代替として simple-git-hooks を使う

simple-git-hooks とは github.com 結論 以下の通りにすれば自動で .git/hooks/pre-commit を作成してくれます。 1. インストールする npm or yarn で simple-git-hooks をインストールします。 2. package.json に hooks のコマンドを記述する 以下のように…

DiscordChatExporter の Docker コンテナは arm(Raspberry Pi など)では実行できない

DiscordChatExporter とは github.com 結論 以下のようにエラーが出ます。 $ docker run --rm tyrrrz/discordchatexporter:stable Unable to find image 'tyrrrz/discordchatexporter:stable' locally stable: Pulling from tyrrrz/discordchatexporter f7ec…

YouTube のチャット欄を単独の Webページ として表示する際の URL

Web

結論 放送の ID*1 を ID とした場合に、以下の URL でチャット欄単独のページの URL となります。 https://www.youtube.com/live_chat?v=ID *1:URL の パラメータ v の値

Powered by はてなブログ