chevron_left

メインカテゴリーを選択しなおす

cancel
約束の地 https://obel.hatenablog.jp/

ゲーム(幻想水滸伝)、デジタル家電、PC、Linux、VPSなど、「何でもあり」なブログです。

Twitterやプログラミングなどの話題も取り扱っています。

たっきー
フォロー
住所
中央区
出身
中央区
ブログ村参加

2016/03/10

arrow_drop_down
  • Rails で datetime型 にテキストをそのまま入れる形で find_or_initialize_by でレコード操作したらタイムゾーンが異なっていたためすべて新規レコードになってしまった

    前提 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.…

  • Tailscale で SSH した場合には X11 forwarding が機能しない

    現象 SSH でログイン時に、 X11 forwarding request failed on channel 0 というエラーが出ます。 結論 現時点では機能しない*1。 参考 github.com *1:将来的には動くかも

  • WSL2 で Tailscale (tailscaled) を自動で起動する方法

    結論 シェルの設定ファイルに例えば以下のように組み込む。 # 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 で大量のデータをバルクインポートしようとすると PostgreSQL が落ちる

    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…

  • 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 に出力すると Git で差分が分からない(毎回差分が出る)ので dot 運用したい」というようなケースで有効です*1。 公式ドキュメント *1:dot の差分が分かりやすいかと言われると決してそうではないのですが

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

    結論 標題のとおりです。 具体的方法 参考ページ deb版の入れ方については以下のページが参考になります。 chatnoirlibre.com 99mozillateamppa の適用のさせ方 99mozillateamppa の適用のさせ方は、どこかに 99mozillateamppa という名前と内容のファイルを用意しておいて、ステップの中で、 sudo cp 99mozillateamppa /etc/apt/preferences.d を実行してあげるといいです。 ステップ全体での 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 の方のリポジトリに登録されてしまいます。 正しく登録するには以下のようにします。cd してはいけません。 $ gh secret set HOGE< sub/fuga.txt ✓ Set Actions secret HOGE for us…

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

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

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

    結論 標題通りです。 マイグレーションのコードをテストと同時に書いていた際にハマりました。直接コマンドで db:migrate(:reset) すると schema.rb を見に行き、schema.rb の更新作業が走っていない場合には例えば UNIQUE制約 などが変更されません。 DBが空っぽの状態から、一定のデータを CSVインポート によって投入したいという状況のとき、DB を空っぽにする作業を行わないと既存レコードが存在してしまってエラーになるし、かといって bin/rails db:migrate:reset みたいなのを実行する行を挿入すると冒頭の現象にハマります。

  • 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>, @tagger=#<FFI::Pointer ad…

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

    自分が意識していることは次のとおりです。 まずは(半)手動で回せるようにする 手動で回すのが面倒になってきたら自動化を考え始める 原則として必要になるまでは自動化は考えない方向で いきなり自動化すると見えなくなってくるものもある 自動化の際はそのコストを考えて、手で回す方が総じてコストが安いならば、単純作業を我慢して手で回す たとえば 1回 につき 30分 かかる試行が 10回 程度で完結する見込みならば、そのために数時間かけて自動化するのは総コスト高になる ただし、自動化の過程で気づきや経験が得られるというメリットがある 自動化が再利用できるタイプのものならば意義はある 小さく部分に分けて回…

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

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

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

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

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

    結論 Twitter changes to search formatting 具体的には

  • 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 "" のいつものエラーが出て混乱するが、よく考えたらデスクトップモードを使っていたよな*1ってことで解決。 参考 bitto.jp *1:安い Intel の ボックスPC に Ubuntu を入れている

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

    結論 標題通りです。 Procfile に release タグで書いてもうまくいかないときもあります。これはずばり「リリースフェーズ中のファイルシステムの変更はアプリの Dyno formation にデプロイされない」ということが理由です*1。 この場合は .procfile に書くという逃げ道があります。 問題点 .profile なので、たとえば $ heroku run bash でシェルに入るときに毎回実行されてしまう。したがって、内容は冪等になるものであり、かつ、時間がかからないものにしないといけない。 「あなたが今やっていることはちょっと変なことだよ」ということの証拠だと思うの…

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

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

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

    前提条件 サービスアカウントを用いて認証を行うとします 使う gem google-api-client google-apis-sheets_v4 でもいいですが、名前が適切な方が誰からも分かりやすいので google-api-client がよいと思います 注意事項 当該ドライブ(フォルダ等)に、サービスアカウントによるアクセス権限を予め付与しておくこと*1 認証コードでは require 'google/apis/drive_v3' を明示的に書くこと*2 具体的方法 認証 いつものやりかたです。スプレッドシートなどと同じです。 以下は概念的なコードですです。 require 'goog…

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

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

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

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

  • Jotform を WordPress に埋め込む場合は

    結論 IFRAME を使う。 IFRAME を使わないと、縦が収まらないでスクロールバーが出てしまうから。 gyazo.com だめな方法 以下の 2つ はいずれもダメです。 1. 「プラットフォーム」で WordPress を選ぶ gyazo.com 2. WordPress のプラグインを使って専用書式で埋め込む 内部的には 1. と同じです。 gyazo.com 余談 以下のような ヘルプページ や Q&A がありますが、いずれも誤っています。 www.jotform.com www.jotform.com

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

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

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

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

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

    ※ 2023/06/19 現在の情報です 箇条書きで pnpm が必須 メモリ(スワップ)不足でセットアップスクリプトで落ちる*1 frontend の vite build のところで JavaScript heap out of memory で落ちる packages/frontend build$ vite build │ vite v4.3.9 building for production... │ transforming... │ <--- Last few GCs ---> │ [7199:0x734eef0] 37428 ms: Mark-sweep 468.7 (488.…

  • 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を使用した後のタイムアウト(秒)を設定し(使用するとリセットされます)、max-cache-ttlオプションは、パスワード入力後にキャッシュするタイムスパン(秒)を設定します。デフォルト値はdefault-cache-ttlが600秒(10分)、max-cache-ttlが7200秒(2時間)です。 参考 …

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

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

  • WSLg でのキーボードレイアウトを確認する方法

    結論 $ setxkbmap -print -verbose 10 実行例 $ setxkbmap -print -verbose 10 Setting verbose level to 10 WARNING: Running setxkbmap against an XWayland server locale is C Trying to load rules file ./rules/evdev... Trying to load rules file /usr/share/X11/xkb/rules/evdev... Success. Applied rules from evdev:…

  • ConoHa の KUSANAGI (KUSANAGI9) で nginx の設定ファイルはどこにあるのか

    結論 /etc/opt/kusanagi/nginx ソース kusanagi.tokyo

  • Rails ERD で継続的に diff を取って pdf をコミットする方法

    結論 dot フォーマットの diff を取り、差分があった場合に PDF を更新(生成)する PDFファイル のバイナリは、同じスキーマの場合でも生成のたびに異なるバイナリファイルになり、diff が出てしまうから dot フォーマットならば、同じスキーマに対して常に同じ出力だから 具体的な方法 たとえばシェルスクリプトならば以下のような感じになります。 ここで、出力先は db/ 配下とし、ファイル名(拡張子除く)は erd とします*1。 bundle exec erd --filetype=dot if [ -n "$(git diff --name-only db/erd.dot)" …

  • YouTube の「動画エディタ」を用いて無音部分を作ることはできるか

    注意点 2023/06/06 現在の情報です。 結論 できません。 補足 「音声」から適当な音楽を選び、無音部分*1 を被せることで限定的に実現は可能です 同じ「音声」は使用できないため、長い時間*2の無音部分を作り出すことは実質不可能です*3 なので、素直に別動画として上げた方がいいです 動画エディタは「編集確定」からの待ち時間も長く*4、トライアンドエラーで高速で作業するのには向かない ただし、生放送のアーカイブ動画では、別動画として上げると URL が変わってしまう*5 *1:たいてい 1秒 とか *2:たとえば数分 *3:あらゆる「音声」の無音部分を継ぎ足せば可能 *4:元動画の長さに…

  • Ruby で インスタンス変数 に File.open を格納して複数のメソッドで each_line したらハマった

    結論 こんな感じに書くと、Hoge#bar では期待通りの挙動*1にならないです。 class Hoge def initialize @file = File.open('/path/to/piyo.txt') end def foo @file.each_line do line puts line end end def bar @file.each_line do line puts line end end end hoge = Hoge.new hoge.foo hoge.bar なぜか hoge.foo によって行数のポインタが最後まで到達してしまっているから。hoge.…

  • YouTube で「埋め込みを許可しない」状態で動画の URL を Twitter に投稿すると、以降サムネイルが表示されなくなる現象への対処

    結論 1. 「埋め込みを許可する」 2. YouTube の URL に適当なパラメータを付与して Twitter に投稿する たとえば動画の URL が https://www.youtube.com/watch?v=abcdefg のとき、適当なパラメータ foo=bar を付与します https://www.youtube.com/watch?v=abcdefg&foo=bar 動画の視聴に影響はありません*1 この時点で動画にサムネイルが出ることを確認します 投稿の際にバレたくないならばコミュニティ機能を使うなどします 3. 以降はサムネイルが生成される これで、以降は誰が投稿してもサ…

  • Kindle のライブラリに epub や PDF を送る方法

    結論 Webページ経由がいい。 補足 メールだと認証が挟まったり時間がかかったり*1ので、Webからサクッとアップロードするのがいいです クラウドなので、ここからアップロードすれば全端末から見られます*2 *1:おそらく定期的にバッチで処理していると思われる *2:当たり前ですが

  • スプレッドシート を API や GAS で扱うときに常に意識しておいたほうが良いことの一つ

    結論 シート上での「型」と API や GAS 上での「型」の違い。 具体例 取得した値に対して文字列操作をするときに、数値に対して置換をするとエラーが出る*1 型恐怖症 たとえば GAS なら、何でもかんでも String(hoge) でキャストするという方法がある。一般的にはこれはエラーを握りつぶす行為になってしまうが、様々な状況を考えると GAS ならギリギリありかなと思っている。 *1:このエラーメッセージがすぐには分かりにくいことがある

  • Google Analytics 4 (GA4) で linkId (Link ID) の長さの上限は 100文字

    結論 表題のとおりです。 100文字を超えると(=101文字より長くなると)切られて、先頭の 100文字 が記録されます。 (参考)Link ID とは a タグ の含まれる id 属性のことです。類似の概念として Class ID もあり、こちらは class 属性の値が記録されます*1。 *1:こちらもおそらく長さの上限は 100文字 のはず

  • wget を用いて 各種短縮URL を展開した URL を取得する方法

    結論 以下のコマンド例で用いている https://amzn.asia/d/cHldi8H は「Echo Dot with clock 第5世代」へのリンクです。 $ wget -nv --delete-after https://amzn.asia/d/cHldi8H 2023-05-23 16:03:49 URL:https://www.amazon.co.jp/Echo-Dot-with-clock-%E3%82%A8%E3%82%B3%E3%83%BC%E3%83%89%E3%83%83%E3%83%88%E3%82%A6%E3%82%A3%E3%82%BA%E3%82%AF%E3%8…

  • Jotform で Google フォント を使う方法

    結論 ヘルプに記載があります。 具体的な方法 1. ボタンを押す フォームの「ビルド」画面の右側にあるペンキローラーのボタン(「フォームデザイナー」への遷移ボタン)を押します。 2. 「スタイル」で CSS を書く 出てきた「フォームデザイナー」サイドバーにて「スタイル」タブを選択し、「カスタムCSSを挿入する」のテキストボックスに所定の CSS を書きます。 @import を書いてから * { font-family: ... } を書きます。書くべき内容は 各フォントのページ からコピペします。 3. 反映を確認する 反映されたことを確認します。CSS を書いてテキストボックスからフォー…

  • Jotform で Google フォーム からのインポートを行う場合には当該 Google フォーム は非ログイン状態で閲覧可能でなければいけない

    結論 タイトルが結論です。 具体的方法 Google フォーム の以下の設定を OFF にする必要があります。

  • IFTTT の My Applets の検索は日本語ではヒットしない

    結論 表題通りなのでアプレット名を命名する場合には検索のことも考える必要があります。 補足 Webブラウザでの検索ではヒットします 2023/05/14 現在の情報です

  • IGN Japan の「リアル・タイム・ニュース」放送にて「幻水I&II HDリマスター」についての話題

    2:58 から 14:19 あたりまでとなります。 www.youtube.com

  • ハピネットゲームフェス!in TGS2023 に百英雄伝スペースあり

    TGS 2023 のハピネットブースの概要が発表されました。 百英雄伝のスペースあり 百英雄伝のスペースが用意されています。 https://happinet-tgs.com/booth/

  • Twitter の検索条件で RT を除外するには "exclude:nativeretweets" を検索条件に追加する

    結論 たとえば「幻水総選挙」という単語で検索する際に RT を除外する場合には「幻水総選挙 exclude:nativeretweets」という検索条件で検索する。 補足 1. 「幻水総選挙 -RT」ではだめなのか? 「幻水総選挙 -RT」という条件だと、本文に "RT" という「文字列」が含まれているツイートも除外されてしまう。 2. 「幻水総選挙 exclude:retweets」ではだめなのか? 「1.」と同じく、本文に "RT" という「文字列」が含まれているツイートも除外されてしまう。

  • IFTTT でアプレットを「削除」する方法(アーカイブでなく)

    結論 Private Applets のページに行き、該当アプレットを選択し、Delete を押し、確認のポップアップで OK を押す。 参考 公式のヘルプページ https://help.ifttt.com/hc/en-us/articles/1500000526422

  • CAPTCHA で守られている Webサイト の RSS を取得する方法

    結論 Inoreader を用いる。 内部的に回避するようになっているみたいです。ただし、いつまでその状況が続くかはわかりません。 補足 他の RSS リーダサービスでもできるかもしれません Feedly はできそう Inoreader のプランによっては RSS をさらに外に出すことができるので、手元でプログラマブルに扱うことができます

  • Ubuntu 22.04 で ImageMagick 7 の "magick" コマンドを実行すると "AppImages require FUSE to run." というエラーが出た時

    結論 libfuse2 を入れる。 $ sudo apt install -y libfuse2 エラーメッセージ こういう感じ。 $ magick -format "%wx%h" foobar.png info: dlopen(): error loading libfuse.so.2 AppImages require FUSE to run. AppImages require FUSE to run. You might still be able to extract the contents of this AppImage if you run it with the --app…

  • 機械学習系の「待ち」時間が90年代の音声や動画作成の「待ち」に感じる

    画像の生成や機械学習を行っていると、とにもかくにも「待ち」時間が発生する。数千枚の画像をアップスケールするのに10時間、など。 これは90年代の音声や動画のエンコード待ち時間を彷彿とさせる。当時はアルバム一枚をエンコードするのに寝る前に「漬けて」おいたりした。動画に至っては専用のエンコードマシンを24時間走らせていたりした。 2023年になってそういう「待ち」が発生する作業がまたやってきた。 こういう作業で困るのは、トライアンドエラーが高速で回せないことで、これは高速で回せることがほとんど、かつ前提とした作業をしているととてつもなくつらい。 GPU にお金を注ぐが、クラウド資源にお金を払うか。…

  • Ruby で Google Cloud Vision API (Vision AI) を利用する

    前提条件 サービスアカウントは登録済みで、認証用の JSON ファイルは手元に用意済みとします ファイル名は creds.json とします 結論 1. 環境変数 GOOGLE_APPLICATION_CREDENTIALS に認証用の JSON ファイルのパスを指定する たとえば direnv を用いるとき、.envrc に以下のように書いて適用します。 export GOOGLE_APPLICATION_CREDENTIALS=/path/to/creds.json 2. Gemfile を作る 以下の Gemfile を作ります。直接 gem コマンドでインストールしてもいいです。 so…

  • GitHub Actions の github-script を用いて、次のステップ以降でも用いる環境変数を定義する方法

    結論 core.exportVariable('envVar', 'Val') を用います。 すると ${{ env.envVar }} が Val を返します。process.env.envVar も Val を返します。 具体例 以下のような YAML で実行された GitHub Actions にて、最後の echo コマンド および console.log コマンド で Val が表示されます。 (ここまで省略) steps: (省略) - name: github-script を用いて環境変数を定義する uses: actions/github-script@v6 with: sc…

  • Google Analytics Data API の CohortSpec にてフィルターをかける方法と GAS でのサンプル

    CohortSpec の「フィルター」とは GUI の「探索」画面でいう、以下の「内訳」の部分です。この「内訳」によるデータ取得を API で実現するためにはフィルター機能を使います。 公式ドキュメント 具体的な例とともに公式ドキュメントにも記載があります。「週次コホートと他の API 機能とのコホートの使用」の項目です。 重要な点 重要なのは 2点 です。 1. "dimensions" の値の中にフィルターの "fieldName" の値 を含めること 上記の例では "dimensions" の値の中に "country" を含めています*1。 { "dimensions": [ { "n…

  • Google Analytics Data API のリクエストには request.returnPropertyQuota を true で設定しておいた方がいい

    request.returnPropertyQuota とは API のレートリミットに関する情報を戻り値に含むかどうかのプロパティです。 デフォルトは false です。false の場合はプロパティそのものが返ってきません。 レートリミットとは(公式ドキュメント) developers.google.com true にするとどのような値が返ってくるか true にするとレスポンス直下に propertyQuota というプロパティが生成されて返ってきます。その値は例えば以下のとおりです。 "propertyQuota": { "potentiallyThresholdedRequests…

  • バンダイのガシャポンにて幻想水滸伝IIのアクリルチャームが発売決定(販路2種類)

    販売の種類 販売されるアクリルチャームの種類は大きく分けて 2種類 あります。 (A) Vol.1 Vol.2 Vol.3 Vol.4 /幻想水滸伝ⅡアクリルチャームVol.1、Vol.2、Vol.3、Vol.4(1回300円)\#ガシャポンオンライン にて限定発売!本日より予約開始🎉ガシャポンオンライン史上最多種類数!総勢108人の仲間をラインナップした全111種🌟#幻想水滸伝Ⅱ👇購入https://t.co/IXJnVJ7k2B pic.twitter.com/bTuZLPG0as— 【公式】バンダイ ガシャポン (@Gashapon_Bandai) 2023年8月9日 (B) 25th …

  • GA4 の Data API v1 では「サンプリング」は起こり得ない

    根拠 内容(英語) Sampling The Data API v1 always builds reports based on unsampled data. There is no equivalent of the samplingLevel field that was present in the Reporting API v4. 内容(日本語) Data API v1 は常にサンプリングされていないデータに基づいてレポートを構築します。Reporting API v4 に存在した samplingLevel フィールドに相当するものはありません。

  • Volta でインストール可能な Node や Yarn のバージョン一覧を表示する方法

    結論 ない*1。 参考 github.com 代替手段は 代替手段は上記の Issue のとおりで n を用いる。 n lsr を実行すれば最新のバージョン一覧は得られるので、npx 経由で実行すれば一発で表示させることはできる。 $ npx n lsr Listing remote... Displaying 20 matches (use --all to see all). 19.9.0 19.8.1 19.8.0 19.7.0 19.6.1 19.6.0 19.5.0 19.4.0 19.3.0 19.2.0 19.1.0 19.0.1 19.0.0 18.16.0 18.15.0 1…

  • macOS で Bundler で pg gem をインストールしようとする際に Can't find the 'libpq-fe.h' header というエラーが出る場合の対処方法の一つ

    前提 Intel Mac pg のバージョンは 1.4.6 Ruby のバージョンは 3.2.2 PostgreSQL のバージョンは 15 結論 bundler の config にて、build.pg に対して --with-opt-dir="/usr/local/opt/libpq" を設定する。 具体的な設定方法 設定方法は 2つ あります。 1. bundle config コマンドで設定する場合 以下のコマンドを実行します。 $ bundle config --local build.pg --with-opt-dir="/usr/local/opt/libpq" すると、カレント…

  • Mac で GitHub Actions の Self-hosted runner を立てる

    Self-hosted runner とは GitHub Actions の動作マシンを自分のマシンで行うこと、あるいはそのマシンのことです。 docs.github.com どのようなマシンを Self-hosted runner に使うか Self-hosted runner としては以下の OS と アーキテクチャ の組み合わせがあります。Linux のディストリビューションの違いや、macOS や Windows の細かなバージョンの違いを考慮すると、理論上の組み合わせ数はかなり多いです。 OS macOS Linux Windows アーキテクチャ x64 ARM64 gyazo.c…

  • 2023年現在での個人用音楽ストリーミングサーバは Navidrome がよさそう

    Navidrome とは 発音はおそらく「ナビドローム」だと思います。 www.navidrome.org デモページ 以下のページがデモページです。 User: demo Password: demo で入れます。 スペックは以下のとおりとのことです。 1 Core Processor 512MB Memory 10GB Disk Space demo.navidrome.org デモページのスクショ こういうのでいいのではないでしょうか。 感想 Subsonic は更新が止まってしまったし、その他のフォークやフォロワーも 2023年 では似たような状況でした。困って探していたところ、この …

  • バリュードメイン から Google Domains へドメインを移管する方法

    手順 1. Google Domains で「移管」メニューへ行く

  • nginx で host_name に該当する場合がないときにどの設定ファイルが参照されるのか

    結論 一番最初に読み込んだ設定ファイル。 ドキュメント nginx.org 具体的な状況例 host_name にたとえば foo.example.com bar.example.com などと設定しているところ、設定していない IPアドレス直打ち でアクセスされた場合に予想外のページが返ってしまった。 でも、いったいどれがどういう理屈で返ったのかが分からない。 対応方法 その1(推奨) server_name に _ (アンダースコア)を指定すると「全ての server_name」になるので、必ずこのファイルを含めるようにする。 なお、listen するポート番号が一致することも必要なので注…

  • 渋谷道玄坂の コスパ があったビル(萩原ビル)が取り壊されていた

    gyazo.com マークシティの出口から出てすぐのところの 円山町5-3 の荻原ビル(の2F)。2022年10月撮影。 goo.gl 2013年6月 日付を遡ってみると、2013年6月には2Fに店舗が見える*1。時期的に ACID PANDA CAFE のロゴが B1F の案内として見られる。 goo.gl 2009年11月 さらに遡って 2009年11月 の画像では営業時間らしい外観が見られる。 goo.gl *1:ただし COSPATIO 名義

  • エラーが突然急増したら Cloudflare が通知をくれた

    ありがたい。 gyazo.com

  • GA4 の「エンゲージメント セッション」の定義は?(公式ドキュメントより)

    結論 公式ドキュメントより。 エンゲージメント セッションとは、10 秒以上継続したセッション、コンバージョン イベントが 1 件以上発生したセッション、ページまたは画面の閲覧または視聴が 2 件以上発生したセッションです。エンゲージメント セッションがない場合(つまり、エンゲージメント セッションのいずれの条件も満たしていない場合)は、Google アナリティクスではそのセッションは直帰としてカウントされます。 support.google.com

  • Next.js v13.4.9 で 404ページ をカスタマイズして任意のページにする

    結論 環境によって適宜読み替えてください。 1. app/404/page.tsx を作る import { notFound } from 'next/navigation' export default function NotFoundPage() { return notFound() } 2. app/not-found.tsx を作る // このファイルが表示させたい内容です const Hoge = () => { return ( <div> hoge </div> ) } export default Hoge 3. (参考)next/image を用いる場合SSG の場合は…

  • GA4 の「アクティブ ユーザー」の定義は?(公式ドキュメントより)

    結論 公式ドキュメントからです。 ウェブサイトまたはアプリケーションにアクセスした個別のユーザーの数。エンゲージメント セッションが発生するか、アナリティクスで以下の情報が収集されると、アクティブ ユーザーとして認識されます。 ウェブサイトの first_visit イベントまたは engagement_time_msec パラメータ Android アプリの first_open イベントまたは engagement_time_msec パラメータ iOS アプリの first_open イベントまたは user_engagement イベント support.google.com

  • GA4 の API で "activeUsers" を取得する場合は dimension に注意する

    結論 たとえば dimension を nthDay にし、過去30日間のデータ範囲を指定し、得られたレスポンスの activeUsers の値の和を計算結果としてはいけない。 nthDay で区切るのではなく、あくまでまるごとのデータとして取得するようにしないといけない たとえば dimension を hostName にするなど 理由 和を取ってしまうと本来の値より大きくなる(ことがある)から。 なぜなら、指定期間内に連続して訪れてくれたユーザを、日別で区切ることによって別個のユーザとして計算してしまうから。 感想 細かい見落としや勘違いがあるので、GA では言葉の定義が大切で、また実際…

  • WSL の仮想マシンを「シャットダウン」する方法と「再起動」する方法

    結論 シャットダウンする方法 コマンドプロンプト や PowerShell で以下のコマンドを実行します。--shutodown ではなく --terminate です。 > wsl --terminate ディストリビューション名 「ディストリビューション名」というのはいわゆる仮想マシン名です*1。 「ディストリビューション名」一覧を表示するには > wsl --list --verbose を実行します*2。 > wsl -l -v NAME STATE VERSION * ubuntu_main Running 2 docker-desktop-data Running 2 docker…

  • ngrok の free プランで固定ドメイン(サブドメイン)が使えるようになっていた

    結論 表題のとおりです。 具体例 メニューの Domains に行くと、次のような形式で固定のドメインが割り当てられています。YOUR_ID の箇所にはランダムな文字列が入ります。 YOUR_ID.ngrok-free.app gyazo.com gyazo.com free版ですとこの ngrok-free.app ドメインに固定で、かつ、サブドメインは一つしか持てず、サブドメインに任意の文字列を割り当てることはできません。 感想 不自由はあるものの*1、これでちょっとした場合に役立つこと間違いなしです。 *1:free版なのに無理言っちゃいけない

  • M1 M2 Mac で git コマンド (CLI) をビルドするときは LIBRARY_PATH を /opt 配下に指定する

    前提 https://github.com/git/git を clone して $ make configure && ./configure --prefix=/path/to && make && make install をしたらエラーが出ます。 結論 環境変数 LIBRARY_PATH を LIBRARY_PATH=":/opt/homebrew/opt/openssl@3/lib/" と指定します*1。 エラーを直すまでの経緯 冒頭のとおりにビルドすると、ビルドのログに以下のようなメッセージが数回出ます。 ld: warning: directory not found for o…

  • Prettier (esbenp.prettier-vscode) が v9.16.0 で動かないので v9.13.0 に戻した

    環境 バージョン: 1.80.0-insider (user setup) コミット: c1bca6d7cc2c5f71ae04deda90c0cf50819ffde4 日付: 2023-06-29T07:44:44.659Z Electron: 22.3.14 ElectronBuildId: 21893604 Chromium: 108.0.5359.215 Node.js: 16.17.1 V8: 10.8.168.25-electron.0 OS: Windows_NT x64 10.0.25393 戻した gyazo.com 補足 いわゆる「おまえの環境だけ」かもしれない。

  • WSLg でキーボードレイアウトを日本語に変更する方法

    結論 $ setxkbmap -layout jp 補足 シェルの起動のたびに実行する必要があるので、~/.zhsrc などに書いておくといいです 現在の設定を確認するには $ setxkbmap -print -verbose 10 を実行します

  • aicommits にて日本語でメッセージを選択できるようにする方法

    aicommits とは 結論 ヘルプのまんまですが、以下のように初期設定をします。 $ aicommits config set OPENAI_KEY=sk-YOUR_KEY locale=ja すると以下のように日本語でメッセージが選択できるようになります。 以下の場合では、さらに generate=3 というオプションも設定しているため、3つ から選べるようになっています。 補足 上記の設定をした場合*1の ~/.aicommits の内容は次のとおりです。 $ aicommits config set を経なくても、直接このファイルにオプションの内容を書き込んで問題ありません。 $ c…

  • GAS で function を書いた以降の行にその function の実行コードは書いてはいけない

    結論 以下のようなことをしてはいけない、ということ*1。 Webコンソールから実行すると二重に実行されるので、予期しない挙動になる*2。 動機や背景 いつもの使い捨てコードの感じで書いていました。 所感 これに気づかないで 3時間 くらいハマってすごい無念。 *1:しないほうがいい、ではなく、してはいけない *2:Logger 程度なら単に 2回 実行されるだけなんだけども

  • プライベートの時間で何を学ぶか(具体的技術の分野)

    プライベートの時間に一定の学びを行っておかないと、仕事のスピードが落ちる。極端に遅くなることはないが、ある程度は遅くなるのは体感上間違いない。 とはいえ、1ヶ月や2ヶ月ぐらい何もしてないからといって、仕事のスピードが半分になるとかのレベルで落ちるということはない。仕事でやる内容というのは仕事の中で学んでいき、その内容というのは大きく変わることはないから、遅いことを実感することがそもそも無いかもしれない。ところどころで微ハマりをするぐらいかと思う。 そうなると、プライベートでの仕事のための学びという点では、環境構築 や 環境設定、オレオレエイリアスやオレオレシェル関数の整備、基本 or Alt …

  • MySQL で バイナリログ の自動削除周期を設定する方法

    結論 /etc/mysql/mysql.conf.d/mysqld.cnf などの設定ファイルの [mysqld] ディレクティブ(セクション)内に、以下の行を追加する。 binlog_expire_logs_seconds = 86400 追加した後は MySQL を再起動する。 確認方法 mysql> show variables like 'binlog_expire_logs_seconds'; +----------------------------+-------+ Variable_name Value +----------------------------+-…

  • GAS でデプロイした際に URL 末尾の /exec 以降を掘ると Google 認証が必須になる

    結論 「アクセスできるユーザー」が「全員」だとしても、Google アカウント でのログイン状態が必須です doGet 内で router 的な動作をして API の戻り値を出し分ける、みたいなことは実質できない URLクエリパラメータ ならばいくら付けてもかまわないので、そこで頑張るしかない

  • Nokogiri や REXML で "entity expansion has grown too large" エラーが出るときの対処方法

    結論 XML がでかすぎるのが原因なので、上限を引き上げましょう REXML::Document.entity_expansion_text_limit の値を増やします。単位はバイトで、デフォルト値は 10240 (10KB) です REXML 配下なので require 'rexml/document' が必要になることがあります require 'rexml/document' REXML::Document.entity_expansion_text_limit=102400 # 100KB

  • Rundeck のデータベースを PostgreSQL にして SSL 接続をする方法

    結論 Rundeck に特有の方法を用いるというわけではなく、JDBC で接続するときの方法を踏襲すればいいです。 具体例 rundeck-config.properties 内で dataSource.url を例えば次のように定義します*1。 dataSource.url = jdbc:postgresql://123.456.789.123:5432/rundeck?ssl=true&sslmode=verify-ca&sslcert=/path/to/client.crt&sslkey=/path/to/client.pk8&sslrootcert=/path/to/server.cr…

  • 巨大な XML(XMLファイル)を Nokogiri で取り扱うときは Nokogiri::XML::Reader を用いる

    結論 たとえば、数GBある XML ファイル sample.xml があったとします*1。 これを以下のように読み込むとエラーになります*2。 xml = Nokogiri::XML.parse(File.open('sample.xml')) なので、そのような場合には Nokogiri::XML::Reader を以下のように用います。 xml = Nokogiri::XML::Reader(File.open('sample.xml')) Nokogiri::XML::Reader をどう取り扱うか Nokogiri::XML::Reader は Ennumurable なので each…

  • ffmpeg を用いてメタデータを標準出力に表示させる方法

    結論 最後の - がポイント。 $ ffmpeg -i FILENAME.mp4 -f ffmetadata - 表示冒頭にでる文言を出したくない場合 上記のコマンドだと、コマンド実行直後に例えば以下のような表示が出ます。 $ ffmpeg -i FILENAME.mp4 -f ffmetadata - ffmpeg version 5.1.1-static https://johnvansickle.com/ffmpeg/ Copyright (c) 2000-2022 the FFmpeg developers built with gcc 8 (Debian 8.3.0-6) confi…

  • AT970T などが Video & TV SideView の連携対応機種から除外(2023年9月下旬)

    発表されました。AT970T だけではなく、2012年以前に発売された機種が対象です。 「録画予約 (ホームネット ワーク内から)」ができなくなるのがつらい。

  • Google 検索 にてそのページのキャッシュの検索結果を表示する Bookmarklet

    結論 javascript:location.href='https://webcache.googleusercontent.com/search?q=cache:%27+escape(document.location.href) 詳細 内部的には以下のように即時関数を実行しているようなことになっています。 前述のブックマークレットではシングルクォートが %27 にエスケープされています。これはブックマークに登録すると自動で変換してくれた結果です。Bookmarklet の登録時には %27 は ' で記述されていても問題ありません。 ( function() { document.loc…

  • Windows 11 にてマルチモニタ環境で仮想デスクトップを使う場合、モニタごとに仮想デスクトップを選択できない

    前提 2023/02/27 時点での話です。 結論 標題通りです。 たとえば仮想デスクトップとして「デスクトップ 2」を作ったとします。その結果、「デスクトップ 1」と「デスクトップ 2」が存在するとします。 物理モニタは「モニタ A」と「モニタ B」があるとします。 このとき、仮想デスクトップで「デスクトップ 2」をいずれかの物理モニタで選択すると、残りのモニタも「デスクトップ 2」になります。そして、それは変更できません。つまり、全ての物理モニタが同じ仮想デスクトップに追従します。

  • PowerShot G7 X Mark II のファームウェアアップデートの際に注意すること

    結論 1. Firm Update のメニュー項目を出すためには以下の条件を満たす必要がある 電源を入れる方法は「▶」(再生ボタン)を押すことによる ダイヤルは P に合わせる Firm Update メニュー項目の場所は「▶」タブの配下の「1」のタブの一番下の項目 2. アップデートは結構時間がかかる 3. アップデートの完了通知は電源が落ちることによる マニュアルに書いてある 4. Webのマニュアル は不正確なことがあるので、ファームのアーカイブに入っている PDF のマニュアルを信じる gyazo.com ファームのページ (Version 1.2.0.0) canon.jp

  • 2020年代の Windows 用の CD リッピング ソフトは fre:ac で良さそう

    fre:ac とは 公式サイト https://www.freac.org/ gyazo.com 窓の杜の記事 forest.watch.impress.co.jp 理由 Microsoft Store で提供されている メンテがされている UI がモダン モダンな環境でエンコード速度が早い 全部入りなので外部エンコーダを落とす必要がない EAC などに存在する機能は内包している

  • Gmail で「すべてのメールを削除(ごみ箱送り)」しても 10,000通 が上限になる

    前提 2023/02/25 時点での話です。 結論 標題通りです。一括削除しようとしても 10,000通 しか一括削除できません。 数十万通のメールがあるときに手動で全削除するとなると、かなりの苦痛になります。 解決方法 時間がかかってもいいならば、GAS + スケジュール実行 でのんびり削除していくのがベストかと思います。

  • 電撃インディー大賞2023「アクションが気持ちよかった作品賞」で「百英雄伝 Rising」が 1位 に

    なりました。 YouTube ここらへんから。 サイト記事 ページの中ほどにあります。

  • GitHub Actions で pnpm を用いる(キャッシュもありで)

    結論 pnpm/action-setup のステップを追加するだけでいい。 github.com 具体例 steps: - name: コードをチェックアウトする uses: actions/checkout@v3.3.0 - uses: pnpm/action-setup@v2 with: version: 7.27.1 # 明示的に指定して Renovate と package.json 内の "engine" で管理するのがいいと思います - name: Node.js のセットアップを行う uses: actions/setup-node@v3 with: node-version-f…

  • GitHub Actions の Renovate の Action をプライベートリポジトリで使う

    前提 用いる Action は以下です。 github.com 結論 YAML は次のようになります。 (前略) steps: (中略) - name: Renovate を実行する uses: renovatebot/github-action@v34.145.1 with: configurationFile: renovate.json # 標準の設定ファイル名に合わせるといろいろと考えることが減るのでそうしています token: ${{ secrets.YOUR_PERSONAL_ACCESS_TOKEN }} (後略) renovate.json は次のようになります。 ポイントは …

  • Rails で特定のディレクトリ配下にあるタスクを全て実行する

    結論 Dir.glob('lib/tasks/foo/*.rake').each do file task_name = File.basename(file, '.rake') Rake::Task["foo:#{name_space}:#{common_task_name}"].invoke end 注意点 各 .rake ファイルにおいて共通の名前のタスクでないとスマートにならない*1。 *1:実行できないというわけではないが、「具体」なタスク名が入ることになる

  • ファミ通の コナミデジタルエンタテインメント 専務執行役員インタビュー の記事で「幻水I&II HDリマスター」に言及あり

    コナミデジタルエンタテインメントの専務執行役員の小林氏のインタビューがファミ通に掲載されています*1。 「幻水I&II HDリマスター」への言及 この記事中に「幻水I&II HDリマスター」への言及があります。 ――反響で言うと『幻想水滸伝I&II HDリマスター 門の紋章戦争 / デュナン統一戦争』も反響が大きかったと思います。 小林 はい、大きかったですね。 『幻想水滸伝』は内部と外部でいっしょに開発を進めてきましたが、本作も開発に本シリーズが大好きなクリエイターが携わってくれていますよ。 しかもかなりのベテランなんです。昔といまとではいろいろ働きかたも含めて作りかたが変わっていますよね。…

  • 1Password CLI でワンライナーでサインインする方法

    結論 $ eval $(echo my_master_password op signin --account hogehoge) 参考 1password.community

  • KONAMI 2023年5月11日 決算発表資料上には幻水の文字は特段なし

    「リリース時期」が「2023年」 特段変更点はなく、言及もありません。 IRニュース 決算発表資料-2023年3月期 決算・連結 決算発表資料-2023年3月期 決算・連結 (PDF/623KB) 決算短信-2023年3月期 決算・連結 決算短信-2023年3月期 決算・連結 (PDF/373KB)

arrow_drop_down

ブログリーダー」を活用して、たっきーさんをフォローしませんか?

ハンドル名
たっきーさん
ブログタイトル
約束の地
フォロー
約束の地

にほんブログ村 カテゴリー一覧

商用