notebook

都内でWEB系エンジニアやってます。

BigQueryで特定パーティションへのデータ書き込み

BigQueryのパーティションについてのメモ やりたいこと BigQueryにレポートなどの日次データを持たせているテーブルで特定日付のバッチ処理のみ再実行できるようにしたい パーティション分割について そもそもBigQueryのパーティションには色々種類があるよ…

S3のPresigned URLで直接アップロードするときのAccessDenied対応

S3へフロントからPresigned URLを使って直接アップロードする記事は色々出ているので参考にすればサクッとできるかなと思っていたが権限周りでつまずいた 今回はその備忘録 想定ケース Presigned URLをRubyのサーバ側で生成 フロント側でPresigned URLの発行…

GrafanaとTimescaleDB使ってみる

TimescaleDB Time-series data simplified | Timescale www.timescale.com PostgreSQLベースで時系列データを扱うことができるらしい GrafanaなどはElasticsearchやInfluxDBなどをバックエンドにグラフ化できたりするがそれのうちの1つにTimescaleDB(Timesca…

じぶん Release Notes (ver 0.32.11)

swfz (ver 0.32.11) がリリースされました、更新内容は次のとおりです 技術 やったこと Rails, AWS 主に仕事 DataPortal + BigQuery + Embulk + TypeScript swfz/ga-event-flatten GAのAPIたたく -> よしなに整形 -> Embulk -> BigQueryというのを書いた Gat…

WSLでGitHub CliのWebオプションを使えるようにする

GitHubのCliではいくつかのコマンド(listやview)に--webオプションが付いていてコマンドラインからブラウザを開いて確認できる PRの詳細を読みたい場合やCIの結果を詳しく見に行きたいときなどどうしてもブラウザで確認したいときが出てくる Macのホストで実…

Windows Terminalを導入する

WSL2と一緒に入れようと思っていたものの別に一緒じゃなくても良いなということでとりあえず導入してみた 執筆時点のバージョン 1.2.2022.0(preview) 筆者の使用用途 主にVagrantでVMを立ててその中で開発 WSLでちょっとしたリポジトリの開発 microsoft/term…

DataPortalに条件付き書式がついていた

今まで気付かなかったが、DataPortalの表かスコアカードに条件付き書式が適用できるようになっていた データポータルで条件付き書式ルールを使用する - データポータルのヘルプ support.google.com やり方に関しては上記のヘルプがわかりやすいのでいつくか…

じぶん Release Notes (ver 0.32.10)

swfz (ver 0.32.10) がリリースされました、更新内容は次のとおりです 技術 やったこと Rails GraphQL WindowsTerminal Preview版入れた Codespaces とりあえず動かした GitHubのREADMEは一応やった イベント 次のイベントに参加した(すべてリモート参加、録…

PuppeteerでXPathを扱う

サンプルやPuppeteerの記事でよく見る$evalや$$evalはCSSセレクタで対象の要素を指定してコールバックを渡したらその中ではブラウザのコンテキストで処理ができる(Elementが渡る)のでelement.hrefのように直接呼び出せる 便利ではあるがここ最近CSSセレクタ…

SimpleCov+RSpecをRails以外のプロジェクトで動かす

SimpleCov+RSpecをRails以外のプロジェクトで動かす 概要 Rails以外のプロジェクトでSimpleCovを使ってカバレッジを出力するメモ SimpleCovをRailsプロジェクトに入れてカバレッジ把握みたいなことはやっていたので同じ流れで簡単にできるというイメージでや…

GitHub Actionsの手動実行 workflow_dispatchを試す

先日GitHub Actionsで特定のworkflowの手動実行ができるようになりました GitHub Actions: Manual triggers with workflow_dispatch The GitHub Blog github.blog もう見たまんまでスクショも貼る必要なさそうな気がしますが、触ってみないと何とも言えない…

じぶん Release Notes (ver 0.32.9)

swfz (ver 0.32.9) がリリースされました、更新内容は次のとおりです 技術 やったこと Puppeteer スクレイピング 仮想スクロールと格闘 DataPortal 混合データと格闘 GAのデータ構造について思いを巡らせたりした GoogleTagManager 読了率を取りたくていろい…

PuppeteerをNode REPLで使う

page.evalやpage.$xなどをreplで確認しながら開発したい 今までChromeのDevToolでCSSセレクタ確認しながら実行して…とやっていたがどうにも効率上がらない REPLで試行錯誤したものを落とし込めたら多少はらくできるかもということで調べてみた REPLでawaitを…

DataPortalで草を再現する

小ネタ GoogleAnalyticsのPV数をGitHubの草のようにビジュアライズする 実際は再現というほど再現できていないが… 傾向はきれいに分かる 設定 グラフ ヒートマップ付きピボットテーブル 列のディメンジョン 週(年間) 行のディメンジョン 曜日 指標 ページ…

RenovateでGitHub Actionsのアクションのバージョンを自動更新する

Renovateを使用して、GitHub Actionsで使用しているアクションのバージョンを自動で上げたい 少し調べてみるとIssueに上がっていた Add support to update action in GitHub Actions workflow · Issue #5733 · renovatebot/renovate github.com Dockerのバー…

Renovateで正規表現を使い独自フォーマットファイルの依存を自動更新をする

個人でも便利に使っているRenovateですが正規表現でよしなにできるようだったので記事を書きました Renovateとは プロジェクトの依存関係(Dependency)の更新を自動化するツール よくある事例では「npmモジュールのバージョン更新を自動でやってもらいPRまで…

じぶん Release Notes (ver 0.32.8)

swfz (ver 0.32.8) がリリースされました、更新内容は次のとおりです 技術 やったこと action-depupへのPRがマージされた add version pattern x.x by swfz · Pull Request #16 · haya14busa/action-depup はてなブログへの投稿をCLI化しGemとして公開した s…

commit --fixupでコミットログをきれいにする

Git

小ネタ git commit --fixupとgit rebase -i --autosquashを組み合わせることで簡単にコミットを混ぜられる --fixup git commit --fixup ${HASH} とすることで対象のコミットハッシュと同様のコメントの前にfixup!というコメントが付く rebase -i --autosquas…

jqで任意の件数だけ出力する

簡単にできるやろと思ったらそんなことなかったのでメモしておく 件数指定する 単純に件数を指定するだけであればlimitでOK $ echo '[1,2,3,4,5,6,7,8,9,10]' | jq 'limit(3; .[])' 1 2 3 これは簡単 絞り込みや並び替え後に件数指定する 上記のような単純な…

TogglAPI+BigQuery+DataPortalでお手軽ダッシュボードを作成する

ここ数ヵ月Togglを用いて仕事、プライベートの勉強時間、睡眠時間のトラッキングを続けています Togglにもレポートはあるのですが無料プランだと次の点で不満がありました workspaceをまたいだデータが閲覧できない projectごとのデータをレポート画面で見る…

じぶん Release Notes (ver 0.32.7)

swfz (ver 0.32.7) がリリースされました、更新内容は次のとおりです 技術 やったこと GCPチュートリアル Dataflow GCP素振り GCS + BigQuery + DataPortalでToogleのデータを可視化した 別途記事書くかも BigQuery Schedule Query swfz/shared-count: share…

Cloud Dataflowを使ってみる

とりあえず触ってみようという感じのノリで使ってみた Python自体初学なので勉強含めてやってみる Cloud Dataflow Dataflow: ストリーム処理とバッチ処理 | Google Cloud cloud.google.com ETLなどで使う感じ AWSだとGlueみたいな感じの立ち位置なのかな? …

google-api-nodejs-client+GCPサービスアカウントで認証してGoogleAnalyticsReportingAPI(v4)を使う

定期的にやっている気がするけど現時点で良さそうと思えるGoogleAnalyticsAPIをNodeクライアントでたたくための方法 GoogleCloudPlatformを使っているとサービスアカウントを作ってキーのパスを環境変数にセットすればよしなにやってくれるので便利でいいな…

GitHub ActionsでJobのOutputの値を後続Jobで参照する

今までJob内限定でStep間でのoutputの参照はできたがJobをまたぐと参照する方法がなかった なので細かくJobを作って後続Jobで参照したいといったパターンに対応できず1つのJobにまとめてしまうくらいしか対応できなかった それが、先日のリリースでできるよ…

Functions Frameworkを使ってCloud Functionsに入門する

4月はGCP素振り月間と銘打っていろいろと触り始めたのでまぁそうだよねみたいな話多めですがやったこと残しておきます Cloud Functions + Pub/Sub + GCS Functions Framework Cloud Functionsなどの関数を開発するためのフレームワーク 公式の説明は下記 Fun…

じぶん Release Notes (ver 0.32.6)

月ごとに振り返る時間を設けるため、「じぶんリリースノート」を始めてみます swfz (ver 0.32.6) がリリースされました、更新内容は次のとおりです 技術 やったこと GCPチュートリアル CloudRun Pub/Sub Storage BigQuery Angular素振り V9へのマイグレーシ…

AWS RunCommandを使いEC2にSSH鍵不要で任意のコマンドを実行する

AWS

以前SessionManagerを試してみて「コマンド実行も行いたい」ということで今回はRunCommandに関して実際に試してみる AWS Session Managerお試し - notebook swfz.hatenablog.com Run Command sshなどを使用せずSSMエージェント経由で特定のコマンドをインス…

ZLEに登録したコマンドを直接シェルから呼び出す

zshのZLEでキーバインドを設定したコマンドに関してはコンソールから直接呼ぼうとするとエラーになる peco-select-history:zle:11: widgets can only be called when ZLE is active どうしても直接呼び出したいパターンがあったので調べたら下記で回答がされ…

AWS Session Managerお試し

AWS

SessionManagerを使えばSSH経由でなくてもEC2に接続できるということで試しも兼ねて調べた SessionManagerを使うにあたっての前提として対象のインスタンスにSSMエージェントがインストールされている必要がある SSMエージェントとは SystemManager経由で各…

Togglでタイムトラッキングを始めた

タイムトラッキングを始めた 動機 ここ半年ほど仕事が会議だらけで作業する時間がまったく取れないということが増えたので実際どのくらい会議しているのか? を図ってみようというのが始まりでTogglタイムトラッキングを行っている Toggl Toggl - Free Time …