notebook

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

AlgoliaのInstantsearchでページ読み込み時の初回リクエストを送らないようにする

AlgoliaのInstantsearchを用いて検索UIを作っていたがページ読み込み時に空のリクエストが発生するらしくリクエストを消費させたくないと思ったので調べて対応してみた Algoliaの料金体系 自分はFreeプランしか使っていないが 10000req/月もしくは10000Recor…

BigQueryで特定の規則に沿った文字列から日付を取得する

はてなブログで特に設定せずに記事を書いているとURLが次のような形式になる /entry/年/月/日/時分秒 この規則的な文字列から日付の情報を取り出すというのをBigQueryのSQLで行う 具体的な例としてはURLのパス/entry/2022/07/22/120000から2022-07-22を取り…

既存のPullRequestやIssueをGitHub Projects Beta(ProjectV2)にひもづける

自分はGitHubのProjects(Beta)を個人のタスク管理に使っている それまではZenHubを使っていたがProjects(beta)に移行した 移行の際、せっかくならそれまで対応してきたIssueやPullRequestなどをProjcets(beta)にひもづけた状態で使い始めたい 各リポジトリの…

GitHubのProject(beta)のデータ(ProjectV2)をGraphQLで取得する

先日Project(beta)でGraphQLのAPIに更新があった The new GitHub Issues - June 23rd update | GitHub Changelog 以前はProjectNextという名前でデータを取得できていた すでにProjectNextでデータを取っていたが新たにできたProjectV2という型で取得するよ…

zxでコマンドライン引数を扱う

zxに限らずだが、nodeでコマンドライン引数リストを参照するとき コマンドライン引数をパースするライブラリを使っていない場合はprocess.argvからリストを取ってくる zxでも単純にこれを使えばよいと思っていたが、zxのオプションを渡すとprocess.argvで渡…

じぶん Release Notes (ver 0.34.9)

swfz (ver 0.34.9) がリリースされました、更新内容は次のとおりです 技術 やったこと dotfilesの整備 Ansibleでcallback_pluginを用いて各タスクの実行時間を計測した AnsibleでのCI実行時間を短くした PAT使っていた箇所を削除した global用のGit Hook(git…

GitLabのGraphQL APIにzxを使ってクエリを投げてみる

ドキュメント読めば一通りわかるが一応やったこととか残しておく 今回はGitLabのMergeRequestの情報をAPIで取得する 一定期間内で、特定のリポジトリのMergeRequestの内容で、MergeRequestにひもづくコミットのshaと日時も欲しかったのでREST APIではなくGra…

GitHub Actionsでactions/scriptを用いてイベントの種類によってmatrixの値を変える

以前matrixを動的に設定する記事(GitHubActionsでmatrixの値を動的に扱う - notebook)を書いたがそのときは固定値だったので、今回はイベント内容によってセットするmatrixを変えてみる actions/scriptを使うとJavaScriptを書けるのでShellScriptやActionsの…

Ansibleで各タスクの実行時間を計測する

DotfilesのAnsibleで結構時間がかかっていたのでどこで時間がかかっているのか知りたくなった 執筆時のAnsibleバージョン $ ansible --version ansible [core 2.12.2] config file = /usr/local/src/ansible/ansible.cfg ansible python module location = /…

じぶん Release Notes (ver 0.34.8)

swfz (ver 0.34.8) がリリースされました、更新内容は次のとおりです 技術 やったこと GoogleSlideにコメント流すツールのchrome拡張化 https://swfz.hatenablog.com/entry/2021/08/05/091154 で扱った内容をChrome拡張にした 拡張では流れるコメントの色、…

Chrome拡張開発時のメモ

Chrome拡張を2つ作ったのでそのときに調べたこととか理解したことのメモ(manifestはv3) 作ったChrome拡張と関連記事 両方Chrome Web Storeには公開してないがリポジトリは作った 1つ目は下記記事の内容をChrome拡張にしたもの 記事 CSVダウンロードがない画…

改行含むデータがあるCSVをBigQueryにloadする

今までCSVをBigQueryにloadすることがそんなになかったので(だいたいJSONでloadしてた)改行が含まれているCSVをloadするのにオプションが必要なのを知らなかった 今回は調べる過程をせっかくなので残しておく load時のエラー 何も知らずにloadしたときのエラ…

GitHub Actionsで使用するRubyやNodeのバージョンをRenovateで更新可能にする

GitHub Actionsのruby/setup-rubyやactions/setup-nodeなどで使う言語のバージョン指定をRenovateで随時更新できるようにする 自分はRuby, Nodeを使うことが多いので掲題の2つしか試していないが他の言語の~~envでもRenovateが対応していれば流用可能 node-v…

じぶん Release Notes (ver 0.34.7)

swfz (ver 0.34.7) がリリースされました、更新内容は次のとおりです 技術 やったこと GoogleSlideでユーザーツールを使ってコメントをスライド中に流すブックマークレット 動かなくなっていたので修正した bookmarklet GitHub Actions workflow_runイベント…

Cloud Workflowsのコールロギング機能を試してみる

先日GAになったWorkflowsのロギング機能を試してみた Release notes | Workflows | Google Cloud Send logs to Cloud Logging | Workflows | Google Cloud 実行時にオプションを付けることでステップ名、関数名、関数引数、呼び出しレスポンスなどをCloud Lo…

GitHub Actionsのworkflow_runトリガーで、直前に実行されたワークフローの情報を取得する

GitHub Actionsで自作アクションや他のアクションでコードを書く場合(TypeScript) @actions/githubのcontextに色々入っているのでそれを、参照して色々行うことが多いかと思う 単純にyamlファイルで定義する場合はイベントの情報は${{ github.event }}で参照…

aws-sdkのErrors::MalformedXML対応例

Rubyのaws-sdk-s3を使っていてマルチパートアップロードをしようと試していたら 完了(Complete)リクエストで次のようなエラーに遭遇したのでメモを残しておく Aws::S3::Errors::MalformedXML: The XML you provided was not well-formed or did not validate…

S3のマルチパートアップロードをpresignedUrlを用いてフロントエンドから行う

動画などの大容量のファイルをS3にアップロードする機能の話 単純にPUTオペレーションでアップロードする場合、1度のPUTオペレーションで最大5GBのオブジェクトをアップロードできる オブジェクトのアップロード - Amazon Simple Storage Service docs.aws.a…

じぶん Release Notes (ver 0.34.6)

swfz (ver 0.34.6) がリリースされました、更新内容は次のとおりです 技術 やったこと リリースノート自動化 PV、購読者数の現状数値も追加 毎月やっているSearchConsole被リンク集計の半自動化 S3のマルチパートアップロードとPresignedURLを使ってフロント…

jqでファイルに書き出したリストを用いて比較する

調査などである値のリスト出力して他のリストと付け合わて比較したいみたいな場合のメモ書き users.json [ { "name": "foo1", "description": "bbbbb" }, { "name": "foo2", "description": "aaaaa" }, { "name": "bar1", "description": "ccccc" }, { "name…

SlackワークフローとSpreadsheetで簡単ToDoリマインダー

Slackのワークフローを使って日によって都度内容の違うリマインドを行う SlackのワークフロービルダーでSpreadsheet連携(Select Spreadsheet Row)を使うと特定の行を取り出し後続のステップに変数として含めることができる さらに、スプレッドシートに工夫…

Spreadsheetの特定カラムの値でグループ化して結合する

よくあるかはわからないが、タスクリストをスプレッドシートに落とし込んで日毎にまとめてフォーマットする、みたいなやつ すぐ忘れるだろうなと思ったので残しておく 画像のようにB列の日付ごとにD列の情報をグループ化してI列に表示している いきなり式だ…

じぶん Release Notes (ver 0.34.5)

swfz (ver 0.34.5) がリリースされました、更新内容は次のとおりです 技術 やったこと じぶんリリースノートの定形コンテンツの自動化 GitHub Actions BigQuery JavaScript ZenHubをGitHubProjectsへ移行 BigQuery(native json型でやったみた) dotfilesのメ…

ASTを経由してMarkdownのparse、compileを行う

毎週、毎月ある程度テンプレート化された記事を公開する場合 毎週、毎月の変動するデータをもとに自動でテンプレートに当て込みMarkdownを生成したい この処理をある程度自動で行えたら良いなと思い調べてやってみた 完結にするためテンプレートは下記のよう…

ZenHubでの個人タスク管理をGitHubProjects(beta)へ移行した

ZenHubで個人タスクを管理していたがGitHubProjects(beta)が良さそうだったので移行することにした 移行に際して、一部過去の情報も含めて移行したいのでそこまでやったので作業ログ的に残しておく ZenHubをフル活用できているわけでもなかったので割とすん…

NotionのAPIを使ってTimeTrack機能を付けてみる

最近FLEXISPOTの電動昇降机を買ったので会議のときとか気分を変えたいときなど立ち姿勢で仕事することが増えた そして、1日どれくらい立ち姿勢で仕事していたか測りたくなってきた ちょうどNotionを使って習慣化や目標を管理していたのでどうせならNotionの…

じぶん Release Notes (ver 0.34.4)

swfz (ver 0.34.4) がリリースされました、更新内容は次のとおりです 技術 やったこと GitHub ProjectsのデータをBigQueryに取り込んで消化状況を可視化 BigQuery dataform GraphQL Notion JavaScript SDKを使って色々自動化 習慣化管理のためのデータベース…

jqでjsonからCSVを生成する

ちょっとした集計などで使うデータの形式はjsonが多いが、たまにツール側の事情でCSVが欲しくなるときもある 具体的に言うと、データポータルにアップロードして単発で使いたい場合はCSVしかサポートされていないのでCSVが必要だったりする さくっと変換でき…

Natural Lauguage APIを使って過去1年分のリリースノートから感情の上下を測ってみる

2020年からじぶんリリースノート(毎月の振り返り的な記事)を書いていた 2021-12 2021-11 2021-10 ここ1年くらいは書く項目が「仕事」「生活」など固定化されてきていたためこれらの文章を使って感情分析にかけたら年間を通してどんな感情だったのかという…

じぶん Release Notes (ver 0.34.3)

swfz (ver 0.34.3) がリリースされました、更新内容は次のとおりです 技術 やったこと Workflows BigQuery プライベートでやっているデータ集めのプロジェクトでWorkflowのアップデートに追従して更新したりSQLのメンテナンスしたり Natural Language(GCP) …