BigQueryで日次、月次のマスターデータを作る

rowデータで日や月に歯抜けがある場合、 group by month などやっても連番にならない可能性があります。 そこで日次、月次のマスターデータを作りそこに紐づける方法をまとめます。 日次のマスターデータを作る SELECT day FROM UNNEST( GENERATE_DATE_ARRAY…

BigQueryでDATE型、DATETIME型を月初に変換する

DATE型 DATETIME型共に DATE_TRUNC を利用することで日の情報を1日に丸め込むことができます。 DATE_TRUNC(day, MONTH) cloud.google.com

スプレッドシートで祝日判定をする

ダッシュボードを作る際に祝日を考慮したかったので検証しました。 完成形のスプレッドシートはこちらです。 答えだけほしい方はこちらから関数をコピペしてください。 docs.google.com 祝日データを内閣府CSVからインポートする 祝日のデータは内閣府が公開…

GASでスプレッドシートにGoogleアナリティクスのデータを定期的に出力する

拡張機能のGoogleAnalyticsだとサンプリングに引っかかったり、期間の調整が必要になるのでそれをGoogleAppScriptで自動化するコードを書きました。 参考 こういった出力が期待できます。 出力するメトリクスはセッション数以外でもUU数や目標完了数など必要…

BigQueryで日次、週次、月次の集計をする

BigQueryで集計 データソース created_at にTIMESTAMP型で何かしらのデータの作成日が入っている想定です。 created_at(TIMESTAMP) user_id(INT) 2022-01-02 14:13:30.801506 UTC 1 2022-01-03 12:13:30.801506 UTC 2 2022-01-04 11:13:30.801506 UTC 1 日次…

Rails collectionのpertialでindexを取得する

Railsのパーシャル内で現在のインデックス数を取得する方法です。 パーシャル内で #{variable_name}_counter で取得可能です。 = render partial: 'users/user', collection: @users index : <%= user_counter %>

Dockerコンテナ内からホスト側にアクセスする方法

Dockerで立てたコンテナ内から別コンテナに接続したかったのですが、ネットワークが別になるのでコンテナ名では繋げられず困っていました。 例えばコンテナAでDBを立ち上げていて、コンテナBからDBに接続したいなど。 考えを変えて、ホスト側にさえアクセス…

Sidekiqを6.4.0に上げるとsidekiq-historyでundefined method `new' for Sidekiq::Worker:Module

環境 ruby 3.0.3 rails 6.1.4.4 sidekiq 6.4.0 sidekiq-history 0.0.11 以下のエラー NoMethodErrorvendor/bundle/ruby/3.0.0/gems/sidekiq-history-0.0.11/lib/sidekiq/history/middleware.rb:14 undefined method `new' for Sidekiq::Worker:Module sideki…

Ruby 配列で重複した項目のみを取り出す

arr = [1, 2, 3, 2, 4, 1] arr.tally.filter_map { |k, v| k if v > 1 }.sort => [1, 2] arr.group_by{ |i| i }.reject{ |k,v| v.one? }.keys.sort => [1, 2] arr.filter_map{ |i| i if arr.count(i) > 1 }.uniq.sort => [1, 2]

gemのアップデートをしたら libffi.so.8: cannot open shared object file: No such file or directory でrailsが動かなくなった

libffi.so.8 が無いと怒られた /home/usernam/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/bootsnap-1.4.8/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require': libffi.so.8: cannot open shared object file: No such file or …

WSLでUbuntuのバージョンを確認する

$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.2 LTS Release: 20.04 Codename: focal

Rails ActiveSupport::MessageEncryptor::InvalidMessage: ActiveSupport::MessageEncryptor::InvalidMessage

新規のアプリデプロイ時にこんなエラーが -----> Preparing app for Rails asset pipeline Running: rake assets:precompile rake aborted! ActiveSupport::MessageEncryptor::InvalidMessage: ActiveSupport::MessageEncryptor::InvalidMessage /tmp/build_…

Heroku Railsアプリデプロイ時にrake assets:precompileでNoMethodError: undefined method `[]' for nil:NilClass

久しぶりに rails new して Herokuにデプロイした時にエラー -----> Preparing app for Rails asset pipeline Running: rake assets:precompile rake aborted! NoMethodError: undefined method `[]' for nil:NilClass master.keyをHeroku環境変数に設定する…

rails credentials:editでNo $EDITOR to open file in. Assign one like this:と怒られる

$ rails credentials:edit No $EDITOR to open file in. Assign one like this: EDITOR="mate --wait" bin/rails credentials:edit For editors that fork and exit immediately, it's important to pass a wait flag, otherwise the credentials will be sa…

Rspecで WARNING: Using `expect { }.not_to raise_error(SpecificErrorClass)` risks false positives

Rspec実行時に以下で怒られました。 WARNING: Using `expect { }.not_to raise_error(SpecificErrorClass)` risks false positives, since literally any other error would cause the expectation to pass, including those raised by Ruby (e.g. `NoMethod…

Ruby HTTPClientでpostする

簡単なことなんだけどbodyを入れるのがうまくいかず詰まったのでメモ require 'httpclient' require 'json' client ||= ::HTTPClient.new # body を jsonにする必要がある body = JSON.generate({ hoge: { moge: 1234 } }) # railsの場合は to_json で ok he…

docker-compose で Can't separate key from value と怒られた時の対応

Docker for Desktopをアップデートしたら以下のエラーが $ docker-compose run => Can't separate key from value Docker2をデフォルトで使う設定になってしまっているようなのでチェックを外し設定をオフにします。 stackoverflow.com

Rails consoleでrake taskを呼び出す

デバッグやバッチ処理内でRake taskを呼び出したいときの対応 Rails.application.load_tasks Rake::Task['my_task'].execute # 引数を渡す場合 Rake::Task['my_task'].execute('arg_string') Rake::Task['my_task'].execute(hoge: 'moge') my_task には hoge…

WSL Docker Elasticsearchで max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] PowerShellで以下を実行して解決 ❯ wsl --shutdown # because we don't really need to restart the computer to see the config is lost ... ⚡ beccari…

WordPress開発環境をwp-envで簡単に作る

npmの @wordpress/env を使うとメチャクチャ簡単にDockerでWP環境が作れました。 基本的に公式ドキュメント通りに設定するだけです。 ja.wordpress.org @wordpress/env をインストール # グローバルに入れるか npm -g i @wordpress/env # ローカルプロジェク…

GitHub ActionsでXserverにあるWPに自動デプロイを設定する

1.GitHubのSecretsにXserverの秘密鍵を登録する 公式を参考 docs.github.com 2..github/actions/deploy.yml 作成 name: deploy to xserver on: push: branches: - main jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 # 必要…

Don't know how to build task 'active_storage:install'

rails active_storage:install をしようとしたら以下のエラー Don't know how to build task 'active_storage:install' config/application.rb で以下をコメントアウトしているのが原因でした # require "active_storage/engine"

Puppeteerでライブラリ不足 libgbm.so.1

以下のエラー chrome: error while loading shared libraries: libgbm.so.1: cannot open shared object file: No such file or directory インストールする sudo apt-get install -y libgbm-dev

Puppeteerでライブラリ不足 libxkbcommon.so.0

以下のエラー chrome: error while loading shared libraries: libxkbcommon.so.0: cannot open shared object file: No such file or directory インストールする sudo apt-get install libxkbcommon-x11-0

Puppeteerでライブラリ不足 libraries: libcups.so.2

以下のエラー chromedriver: error while loading shared libraries: libcups.so.2: cannot open shared object file: No such file or directory インストールする sudo apt-get install libcups2-dev

Puppeteerでライブラリ不足 libraries: libatk-bridge-2.0.so.0

以下のエラー chromedriver: error while loading shared libraries: libatk-bridge-2.0.so.0: cannot open shared object file: No such file or directory インストールする sudo apt-get install libatk-bridge2.0-0

Puppeteerでライブラリ不足 libraries: libatk-1.0.so.0

以下のエラー chromedriver: error while loading shared libraries: libatk-1.0.so.0: cannot open shared object file: No such file or directory インストールする sudo apt-get install libatk1.0-0

Puppeteerでライブラリ不足 libraries: libnss3.so

以下のエラー chromedriver: error while loading shared libraries: libnss3.so: cannot open shared object file: No such file or directory インストールする sudo apt-get install libnss3-dev

個人的Windowsを買ったときのセットアップ

毎回するセットアップのメモ とりあえずインストール Google Chrome Google 日本語入力 半角全角切り替えの設定 Clibor Slack Zoom Microsoft PowerToys CapsLockをCtrlに変換 WSL Ubuntu RubyMine VS Code Docker Desktop WSL Ubuntuセットアップ # とりあ…

Your bundle is locked to mimemagic (0.3.5), but that version could not be found in any of the sources listed in your Gemfile. If you haven't changed sources, that means the author of mimemagic (0.3.5) has removed it. You'll need to update your bundle to a

Railsプロジェクトを動かそうとしたら下記のエラー Your bundle is locked to mimemagic (0.3.5), but that version could not be found in any of the sources listed in your Gemfile. If you haven't changed sources, that means the author of mimemagi…