rpgamer.com
ゲーム(幻想水滸伝)、デジタル家電、PC、Linux、VPSなど、「何でもあり」なブログです。
Twitterやプログラミングなどの話題も取り扱っています。
結論 --project オプションを用いる。 具体例 $ clasp push --project .clasp.foobar.json 注意点 ファイル名がドットから始まらないと怒られます。 $ clasp push --project aaaa.clasp.json Project file must start with a dot (i.e. .clasp.json) .clasp.env01.json .clasp.env02.json みたいな形を想定しているのでしょう。
Firefox 105 を使うと Cypress の実行に失敗する
状況 Still waiting to connect to Firefox が出続けます。 gyazo.com 原因 Firefox 側が原因です。Cypress チームも調査中とのこと。 github.com @cgraham-rs thanks for confirming our suspicions. We are going to check with firefox to see if they are aware of this issue. I would encourage you to do the same. I will close this issue since …
React Twitter Embed の TwitterTweetEmbed コンポーネントで読み込み中に文字を出す方法
結論 placeholder を props として渡す。 例 (前略) return ( <> <TwitterTweetEmbed placeholder={'読み込み中…'} tweetId="12345678901234567890" </> ) (後略) ソース github.com
$ clasp run ができたりできなかったりして 6時間 ハマって結局使うのはやめた
clasp とは github.com 状況 GAS の実行を手元で行おうと*1 $ clasp run 環境を整えようとしたのですが、できたりできなかったりして 6時間 ハマり、結局確定的な解決方法を見いだせなかったので諦めました。 具体的には、credentials を初期登録直後にはうまくいくのですが、$ clasp push とかしてしまうと Script API executable not published/deployed. が出て実行できなくなります。 deploy のし直しやログインのし直し、 appsscript.json の編集からの push などもしましたがだめでし…
@ts-ignore は ESLint で怒られるけどそれでも @ts-ignore を書きたいとき
結論 // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore
Rails の jbuilder でハッシュが完成された形で収められているインスタンス変数を愚直にそのまま返す書き方
前提 以下のように定義されていて、そのまま返したいだけの場合です。 @hello = { foo: [ { a: "b"}, { c: "d"}, ], (以下省略) 結論 json.merge! @hello
"establish_connection :outer_database" の記述により CI で データベース接続エラーが出て 6時間 溶かした
状況 Rails にて外部データベースを用いている状況で CI*1 で RSpec を回そうとしました。すると、データベース接続エラーがどうやっても解消できず、6時間溶かしました*2。 結論(解決方法) モデルのファイル中に establish_connection :outer_database などと記述がある場合には、outer_database の接続設定をしてやる必要がある。RSpecの実行時に接続を試みるので、接続ができない時点でエラーになる。 補足 現実的には外部DBに接続して CI を回すということはないと思うので、例えば以下のように分岐させるのが一つの手段かと思います。 es…
GitHub Actions で step がエラーであってもエラーとみなさずに次の step へ進む方法
結論 以下のプロパティを追記します。 continue-on-error: true 具体例 (前略) - name: テストステップ continue-on-error: true run: echoo hello (後略)
BDZ-AT970T は本体フリーズの可能性がある致命的バグがあるので手動でファームを上げるべき
現象 ここ 1年 のあいだで頻繁に本体が起動時フリーズ*1することがあり、端的に言って使いものにならないので困り果てていました。 ファームのバグだとしても自動アップデートの設定にしているし…と思ってふと Web を検索したら驚くべき結果が出てきました。 「ホーム画面を選択すると動作しなくなる(フリーズする)」 症状としてはこれだ…と思いました。 knowledge.support.sony.jp ファームを確認する 上記症状はファームが 21.xx.026 以上ならば対応済みです。念のため、自分のファームを確かめました。 21.2.024 でした。 ファームは自動では上がらない 現象が解決しそ…
KONAMI新作発表【TGS2022】の YouTube ページの作品欄に「ラブプラス」の記載がある
「KONAMI新作発表」 TGS2022 にて、2022/09/16 の 15:30 ~ 16:15 に「KONAMI新作発表」が予定されています。 gyazo.com www.konami.com YouTube での配信ページのゲーム欄には「ラブプラス」の記載が 配信も予定されています。 www.youtube.com このページのゲーム欄には「ラブプラス」の表記があります。 gyazo.com 「ラブプラス」の記載は KONAMI ステージの他の配信にもある これだけを見ると新作が「ラプブラス」かと思ってしまいます。しかし、jdk BAND のライブのページにも「ラブプラス」の表記があり…
GitHub Actions の "ubuntu-latest" の中身は何なのか
結論 これです。いろいろなものが全部入りに近いので、毎回の $ sudo apt update && sudo apt install が省略できて CI上 ではありがたいです。 github.com 補足 具体的に中身をいろいろと触ってみたい場合には SSH するとよいでしょう。 obel.hatenablog.jp
結論 ports を明示的に指定しているかどうか。 具体例 以下の ports を追加したら自分の場合は動きました。 services: postgres: image: postgres ports: - 5432:5432 (以下省略) 補足 そりゃ当たり前だよねという話。
Google Sheets API (Ruby) で update_spreadsheet_value メソッドの引数の意味
前提 以下のようなメソッド実行例です。 便宜上、以降では以下のコメントに基づいて 1つめ、2つ目... という形で引数を呼ぶことにします service.update_spreadsheet_value( sheet_id, # 1つめ range, # 2つめ value_range_object, # 3つめ value_input_option: 'USER_ENTERED' # 4つめ ) 結論 1. 1つめの引数 シートの ID です。 2. 2つめの引数 書き込みの「始点」です。 range とありますが、実質的には「始点」と考えておいて困ることはないと思います。 イメージで言うな…
「ブログリーダー」を活用して、たっきーさんをフォローしませんか?
rpgamer.com
結論 excelapi.org 具体例 たとえば以下の URL にアクセスするとテキストで返ってきます(漢字部分は「織田信長」)。 - https://api.excelapi.org/language/kanji2kana?text=%E7%B9%94%E7%94%B0%E4%BF%A1%E9%95%B7 補足 ExcelAPI という名前ですが、単純な API として用いても OK とのことです。 excelapi.org Yahoo! に同様の API がありますが、それをラップしたもののようです*1。 注意点 1分間に300件までのレートリミットがあります。 *1:Yahoo! のもの…
結論 Mac が「大文字小文字を区別しない」からではないか。 Mac が設定上で「区別しない」場合には、 Linux では該当ファイルが見つからないことになるから。 具体例 ls コマンドを実行した場合の具体例。 Linux gyazo.com macOS gyazo.com 参考 dev.classmethod.jp 補足 めちゃくちゃハマったが、この知見はきっと活きる。
結論 VPN の接続。自分の場合は以下を VPNトンネル から除外するとうまくいった。 tailscale.exe tailscaled.exe tailscale-ipn.exe
結論 オプション -nosalt を付与する。 具体例 1. -nosalt を付与しない場合 一見同じ結果に見えますが、全て異なっています。 $ echo "hogehoge" openssl enc -e -aes-256-cbc -base64 -pbkdf2 -pass pass:foobar U2FsdGVkX19a4H6vBEvUMPTyd+Q7/27pFzaPQctnCfs= $ echo "hogehoge" openssl enc -e -aes-256-cbc -base64 -pbkdf2 -pass pass:foobar U2FsdGVkX185H8E7L8W…
前提 find_or_initialize_by にこだわるのは本質的ではなく、find_by や where などでも同じです。本質はタイムゾーンの違いです。 結論 具体例を見たほうが早いと思いますので、載せます。 NG な例 user = User.find_or_initialize_by( name: 'hoge', submitted_at: '2023/04/07 17:48:31' ) これを繰り返し実行した場合に、常に user.new_record? が true を返してしまいます。 OK な例 期待通りの動作をさせるためには、テキストでそのまま入れるのではなく Time.…
現象 SSH でログイン時に、 X11 forwarding request failed on channel 0 というエラーが出ます。 結論 現時点では機能しない*1。 参考 github.com *1:将来的には動くかも
結論 シェルの設定ファイルに例えば以下のように組み込む。 # Starting Tailscale daemon automatically if not running... RUNNING=`ps aux grep tailscaled grep -v grep` if [ -z "$RUNNING" ]; then sudo tailscaled > /dev/null 2>&1 & disown fi 補足 $ sudo tailscaled をパスワード確認無しで実行するために /etc/sudoers に追記をする必要がある*1 tailscaled の場所は which …
Activerecord-Import とは github.com 結論(どうするか) インポート時に batch_size オプションを指定してやる。 具体例 User.import!(users, batch_size: 10000) PostgreSQL が落ちたときのエラーメッセージ PQconsumeInput() SSL SYSCALL error: EOF detected (ActiveRecord::ConnectionFailed) 参考 https://webcache.googleusercontent.com/search?q=cache:jdX4uXcvCb4J:h…
結論 ここです。設置場所を考えると数メートルの USBケーブル を用いるのが無難です。 長い USBケーブル は一本持っておくといろいろ便利で、たとえば SwitchBot のカーテンレールの充電にも役立ちます。
結論 require 'rake' をする。 公式ドキュメント docs.ruby-lang.org
結論 Graphviz (CLI) はインストール済みであるとします。 $ dot -Tpdf /path/to/hoge.dot -o /path/to/fuga.pdf 具体例 Rails ERD では dot で出力が可能なところ、その dot を PDF に変換するために有用です。 「Rails ERD で最初から PDF に出力すると Git で差分が分からない(毎回差分が出る)ので dot 運用したい」というようなケースで有効です*1。 公式ドキュメント *1:dot の差分が分かりやすいかと言われると決してそうではないのですが
結論 標題のとおりです。 具体的方法 参考ページ deb版の入れ方については以下のページが参考になります。 chatnoirlibre.com 99mozillateamppa の適用のさせ方 99mozillateamppa の適用のさせ方は、どこかに 99mozillateamppa という名前と内容のファイルを用意しておいて、ステップの中で、 sudo cp 99mozillateamppa /etc/apt/preferences.d を実行してあげるといいです。 ステップ全体での 99mozillateamppa の適用のさせ方 ステップ全体としては以下のような流れで実行していきます…
結論 標題のとおりです*1。 具体例 REPO/sub 配下が submodule だとして、たとえば以下のように gh secret set したとします。 $ cd sub $ gh secret set HOGE< fuga.txt ✓ Set Actions secret HOGE for username/sub 以上のように submodule の方のリポジトリに登録されてしまいます。 正しく登録するには以下のようにします。cd してはいけません。 $ gh secret set HOGE< sub/fuga.txt ✓ Set Actions secret HOGE for us…
28:17ぐらいから32:44ぐらいまで www.youtube.com
結論 標題通りです。 マイグレーションのコードをテストと同時に書いていた際にハマりました。直接コマンドで db:migrate(:reset) すると schema.rb を見に行き、schema.rb の更新作業が走っていない場合には例えば UNIQUE制約 などが変更されません。 DBが空っぽの状態から、一定のデータを CSVインポート によって投入したいという状況のとき、DB を空っぽにする作業を行わないと既存レコードが存在してしまってエラーになるし、かといって bin/rails db:migrate:reset みたいなのを実行する行を挿入すると冒頭の現象にハマります。
gyazo.com 現象 github.com 結論(これで解決した) プロジェクトに Prettier を入れて Prettier Path には ./node_modules/prettier を指定する。 それまでは nodenv を用いた上でグローバルに入れていた*1が、プロジェクト配下に入れることで解決した。 *1:良くない
結論 GitHub 側で一度 Cloudflare のアプリを削除してから再インストールする。
結論 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>, @tagger=#<FFI::Pointer ad…
自分が意識していることは次のとおりです。 まずは(半)手動で回せるようにする 手動で回すのが面倒になってきたら自動化を考え始める 原則として必要になるまでは自動化は考えない方向で いきなり自動化すると見えなくなってくるものもある 自動化の際はそのコストを考えて、手で回す方が総じてコストが安いならば、単純作業を我慢して手で回す たとえば 1回 につき 30分 かかる試行が 10回 程度で完結する見込みならば、そのために数時間かけて自動化するのは総コスト高になる ただし、自動化の過程で気づきや経験が得られるというメリットがある 自動化が再利用できるタイプのものならば意義はある 小さく部分に分けて回…
コナミオフィシャルショップ コナミのオフィシャルショップで販売されます。現時点ではプレオーダーで、発売予定日は今年の第三四半期です。 Now available in Official Konami Shop, the original video game soundtrack classic RPG: SUIKODEN! Fill your surroundings with the beautiful music of the Scarlet Moon Empire featuring original artwork from the Konami vault ⚔️Get yours!…
結論 Node パッケージをインストール後に、2つの Windows 実行ファイルに実行権限をつける。 $ chmod +x node_modules/node-notifier/vendor/snoreToast/snoretoast-x64.exe $ chmod +x node_modules/node-notifier/vendor/snoreToast/snoretoast-x86.exe 補足 「なにかのたびに実行権限が外れていることを気にする必要がある*1」ので、これを除外して冪等にするには、たとえば package.json に以下のように追記する*2。 "postinstal…
結論 「docker build` を実行する際の書き方」と「Dockerfile の書き方」の 2つ の書き方を適用する必要がある。 docker build を実行する際の書き方 RAILS_MASTER_KEY という環境変数に渡したいデータが格納済みとする。 $ docker build --secret id=rails_master_key,env=RAILS_MASTER_KEY --tag my_app . Dockerfile の書き方 (これより前は省略) RUN --mount=type=secret,id=rails_master_key RAILS_MASTER_KE…
上記の本*1を実際に購入する(した)方法です。一般的な ECサイト での購入手順と同一ですが、フランス語を Webブラウザ で随時翻訳しておく、などの工夫が必要です*2。 1. Third Editions のサイト(仏語)に行く 行きます。 ※サブディレクトリで /en を指定すると英語版のサイトに行けますが、そちらでは現時点*3では 幻水II本 を扱っていません 2. 幻水II本 の商品ページに行く 行きます。ここらへんから翻訳がないとつらくなってきます。 *1:以降は「幻水II本」と呼びます *2:頑張れば、あるいはフランス語が読めるならば翻訳は不要 *3:2023/04/13
結論 JavaScript (JSON) の世界で情報の受け渡しを行うため、データフォーマットとしては JSON or バイナリ*1 の世界だということです。 gyazo.com gyazo.com gyazo.com 補足 n8n のデータの流通は原則として JavaScript の世界でのことなのでこういうものだと思います Destination Key にデフォルトで指定される data という key は n8n ではデフォルトの key なので深い理由がなければいじらないほうがいいです *1:テキストも含む
結論 表題通り。 ハマった 落ちるときのエラーは次のような感じ。 rails aborted! ActiveRecord::NoDatabaseError: We could not find your database: eiyuden_crm_test. Which can be found in the database configuration file located at config/database.yml. To resolve this issue: - Did you create the database for this app, or delete it? You…
La Saga Suikoden: Une étoile au firmament du J-RPG 先日も書いた 幻水II 本の「La Saga Suikoden: Une étoile au firmament du J-RPG」ですが、版元の Third Editions からは初回版として特別仕様の表紙カバーバージョンを購入することができます。 初回版カバーの裏面には通常バージョンの表紙が印刷されている(リバーシブル)ので、初回版を購入しておけば通常版の表紙も再現できます。 ただ難点なのは、現時点ではフランス語サイトでしか通販申込みができないという点です(日本への発送は OK)。 なお…
結論 パーソナルアクセストークン (PAT) を取得し、actions/checkout を使う際に その PAT を token という key で指定する。 具体的な書き方 以下のように書きます。secrets の登録方法は省略します*1。 - name: $ git clone する uses: actions/checkout@v3 with: token: ${{ secrets.YOUR_TOKEN }} ハマったところ PAT を使えば良いことはだいたい見当がつくのですが、actions/checkout で使うとはわからなかった。README に記載はあるのですが、すぐにこれに…
一昨日のこと*1になりますが、Twitch にて 幻水II のクイズイベントが有志により開催されました。 Quiz Kit という Twitch と連携するサービスを用いて参加者がクイズに答えていくイベントです。以前に 幻水I をテーマに開催されたところ、今回は 幻水II がテーマになっています。 英語によるイベントですが、ビデオが残っていて見返せますので、雰囲気等が味わえます。興味がある方はどうぞ。 www.twitch.tv *1:2023/04/02
結論 以下のような Step を書きます。 - name: inputs と secrets の値を表示する run: echo '${{ toJson(inputs) }}' echo '${{ toJson(secrets) }}' 注意点 toJson() しないと Object と表示されます つまり、一般的に Object と表示された場合には toJson() してやれば中身が表示できます echo の引数は シングルクォート してあげないとエラーになります*1 こちら や こちら を参照のこと *1:これにハマった
La Saga Suikoden: Une étoile au firmament du J-RPG 先日記事に書いた幻水本「La Saga Suikoden: Une étoile au firmament du J-RPG」が、日本の Amazon にて Kindle版 で購入できるようになっています。 ただし、フランス語版ですので、その点は十分にご留意ください。 以下のリンクから購入できます(アフィリエイトリンクです)。 La Saga Suikoden: Une étoile au firmament du J-RPG (French Edition)作者:Remoiville, Jo…
結論 {{$now.toFormat('yyyyMMdd_HHmmss')}} gyazo.com 補足 ポイントは toFormat() です 他にも toLocaleString() などがあります 内部的に Luxon を使っているのでそのドキュメントを見ると手っ取り早いです moment.github.io
前提 macOS 13.2.1(22D68) uname $ uname -a Darwin FOOBAR.local 22.3.0 Darwin Kernel Version 22.3.0: Mon Jan 30 20:38:43 PST 2023; root:xnu-8792.81.3~2/RELEASE_ARM64_T8112 arm64 Xcode $ pkgutil --pkg-info=com.apple.pkg.CLTools_Executables grep version version: 14.2.0.0.1.1668646533 rbenv rbenv のインストール…
MinIO の場合とほとんど同じです。 obel.hatenablog.jp 事前準備 「R2 API トークンの管理」から、トークン(アクセスキーとシークレットアクセスキー)を予め作成しておきます 「エンドポイント」は https://アカウントID.r2.cloudflarestorage.com/ になるので、これも予め控えておきます gyazo.com 結論 必要な gem aws-sdk nokogiri nokogiri でなくとも ox や oga や libxml や rexml でもいいです nokogiri を選んだ理由は、Rails の場合は明示的に入れなくてよく、馴染み…
少しだけ注意する点がありますが、それ以外はいつもどおりです。 結論 必要な gem aws-sdk nokogiri nokogiri でなくとも ox や oga や libxml や rexml でもいいです nokogiri を選んだ理由は、Rails の場合は明示的に入れなくてよく、馴染み深いから、というだけで深い理由はありません コード require 'aws-sdk' s3_client = Aws::S3::Client.new( region: 'ap-northeast-1', access_key_id: 'YOUR_ACCESS_KEY_ID', secret_acce…
Rundeck とは www.rundeck.com n8n とは n8n.io 乗り換えた理由(Rundeck のつらみ) 重い メモリ 2GB の VPS で Rundeck 専用につかっても重い ジョブの一括削除すると必ずタイムアウトするか 30分 ぐらい待ってエラーとかでどうにもならなくなった 起動が遅い メモリ使用量が常時上限張り付き 乗り換えにあたって要した条件 軽いこと コードベースでジョブが扱えること IFTTT は全部ポチポチ GUI なのでジョブが増えると手に負えなくなる 柔軟性が高いこと n8n は多くの Integration に対応している n8n は多くの node…
結論 タイトルのまんまなんですが、以下、例示の画像です。 デフォルトのマイグレーションだと timestamp になります。それを timestamptz に変換してから記録したのが最新の一件になります。 gyazo.com gyazo.com 理由や原因 Open されている Issue があります*1。timestamptz への型変換はこの Issue を見て気づきました。 github.com 関連 Issue & Pull Request github.com github.com *1:この記事が公開されている頃には対応されているかも
結論 gem として google-analytics-admin-v1alpha を用います。各種データを取得するための Data API とは異なるので注意です。 公式ドキュメント cloud.google.com 具体的なコード例 具体的なコード例は次のとおりです。Data API のとき とほぼ同じです。 (1) client を定義し、 (2) リクエスト内容のオブジェクトを定義し、 (3) その内容を client のメソッドを用いて投げる、 とレスポンスが返ってくる、という流れです。 認証は Data API のとき と同じく、サービスアカウントの 認証用 JSON ファイル の…
注意 2022年12月13日(火)現在の内容です。 結論 たとえば ./dist 配下に静的な HTML などが存在し、./dist/funcions が存在するとき。 デプロイされない場合 以下のような wrangler の実行方法だと functions がデプロイされません。 $ wrangler pages publish ./dist Uploading... (8/8) ✨ Success! Uploaded 0 files (8 already uploaded) (0.41 sec) ✨ Deployment complete! Take a peek over at http…
前提 2023年3月17日(金)現在の話です。 結論 どの gem を使うか? google/analytics/data/v1beta です。 API の認証はどうするか? GCP のサービスアカウントを作成し、認証用の JSON ファイルである credentials.json を準備しておいてください*1。下記のような形式のものです。 { "type": "service_account", "project_id": "foobar-project", "private_key_id": "12345abcdef", "private_key": "-----BEGIN PRIVATE…