タグ

ブックマーク / qiita.com (423)

  • protocプラグインとカスタムオプション - Qiita

    以前の記事ではprotocプラグインの書き方を紹介したが、実は1つ問題があった。 実用的なプラグインを書こうとした場合に、しばしば生成時に必要な、ドメイン固有の情報が足りないのである。稿ではそれを補うカスタムオプションの話をする。 ここでもう一度確認しよう。protocのプラグインはProtocol Buffersのスキーマを読んで任意の処理を行える仕組みだ。それはCodeGeneratorRequest内のFileDescriptorProto messageを読み取って任意のバイト列を出力し、出力を受け取ったprotocが指定通りにファイルにバイト列を書き込んでくれる。 ただ、FileDescriptorProtoはprotobufのスキーマ言語の文法をprotobufメッセージとして表現したものに過ぎないから、極めて一般的なデータ構造とサービス定義を表現する能力しか持たない。プログ

    protocプラグインとカスタムオプション - Qiita
    syou6162
    syou6162 2024/07/29
  • Protobufでスキーマ変更を安全に行う方法 - Qiita

    この記事について Money Forward Engineering 2 Advent Calendar 2023 - Adventar の 20日目 の記事です。 はじめに Protobuf使っていますか? 私はKafkaでメッセージをやり取りするのに使っています。 バイナリデータを扱うといっても、非常に柔軟だなぁという認識を持っているので、私がまだ新卒だった頃にやっていたような、 Cで書いて動かしているソケットサーバで受信したバイナリメッセージを、ファンクションポインタを使って動的にメソッド呼び出しするようなものを、Protobufを使ってWEBの世界でやってみても良いんじゃない?と思ってたりします。 (gRPC-Webってやつでそういうのをやってみたい) それは一旦おいておいて、このページではProtobufで定義したメッセージ構造を、抜的に変更しても安全に行うことができりょって方

    Protobufでスキーマ変更を安全に行う方法 - Qiita
    syou6162
    syou6162 2024/07/29
  • Schema Registry - 怖くないSchema Evolution - Qiita

    はじめに Confluent Schema Registryはイベントの型 (Schema) を集中管理する仕組みです。来イベントはスキーマと合わせてApache Kafkaに送られますが、Schema Registryを利用すると: Schemaをメッセージに含めずIDで指定出来る為サイズを大幅に小さく出来る。 Schemaをバージョン管理できる。 互換性の無いSchema変更を遮断する制御ができる。 といった利点があります。エントリでは特に#3、Schemaの変更互換性とバージョンアップ (Schema Evolution) と上手く付き合う方法について説明します。 実際に試すには Confluent CloudではマネージドサービスにSchema Registryが含まれているのでそのままお試しいただけます。ローカルで試したいという方はConfluentが提供しているデモシナリオ

    Schema Registry - 怖くないSchema Evolution - Qiita
    syou6162
    syou6162 2024/07/29
  • protocプラグインの書き方 - Qiita

    以前の記事では、Protocol Buffers (protobuf)の魅力の1つは周辺ツールを拡張しやすいことだと述べた。そこで稿では具体的に拡張のためのprotocプラグインの書き方を紹介したい。 ちなみに、protobufの周辺ツールと言うと2種類ある。 1つはprotobufでシリアライズされたデータを処理するツール。JSONやCSVにとってのjqやsedやawkに相当する。 もう1つはprotobufのスキーマを処理するツール。 先の記事にあるようにProtobufはシリアライゼーション機能だけでなくスキーマ言語としても価値が高いので、典型的なweb開発用途では後者のほうが重要だ。 稿は後者のスキーマ処理の話である。なお前者は、チュートリアルでAPIを覚えたらあとは自分で好きな処理を書きましょうというだけの話なので、別に難しくない。 初めに、protocについて確認しよう。こ

    protocプラグインの書き方 - Qiita
    syou6162
    syou6162 2024/07/29
  • なんだか助かる便利なおっちゃんになりたい - Qiita

    これまでの生存戦略 それほど尖った能力や知識がない中で、私のこれまでの生存戦略としては求められればなんでもやる、少しくらい泥水でも飲むというものでした。 フロントエンドからバックエンド、データベース設計、API設計、実装、インフラ側の設定、提案書作成、プレゼンテーション、プロジェクト進行、どれも“専門家として誇れるか”というと疑問がありますが、求められればなんでもやるスタンスでそれが自分の価値提供の形と考えていました。 また、以前までは「若い」というのも、強みでした。 一回りほど上の年齢に見られることも珍しくなく、「そんな若かったのか」と驚かれるなかで、「若いのに頑張ってるね」と年齢のフィルターで大目にみてもらえました。 しかし、そんな私も気が付けば40歳、もう若さという武器はありません。 (つい先日まで20代だったはずなのに..何かおかしい..) 体力的にも無理が効かず、新しいことを学ぶ

    なんだか助かる便利なおっちゃんになりたい - Qiita
    syou6162
    syou6162 2024/07/17
    これはいい言語化
  • Google Data StudioのグラフをGASでSlack配信する - Qiita

    概要 Google Data StudioでSlack配信しなければいけないタスクが発生したため対応方法を記載します パイプライン Data Studioから自分宛にメールを日次でスケジュール配信する GASでData Studioから送信された直近のメールから添付ファイルを取得する 取得した添付ファイルをSlack配信する ※どこかの処理で失敗したら手動で投下する運用を想定 検討した他の手段 DataStudioのリンクを投下してサムネを表示させる ↓こんな感じのリンク https://datastudio.google.com/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/thumbnail?sz=full このURLだったらSlackがサムネを展開してくれる リダイレクト後のURLは静的画像のためデータ更新で反映されないので毎回

    Google Data StudioのグラフをGASでSlack配信する - Qiita
    syou6162
    syou6162 2024/07/04
  • Looker Studio の行レベルのセキュリティが便利です - Qiita

    はじめに Looker Studioとは、GoogleCloud のBIツールです(以前はデータポータルという名前でした)。 BigQuery や Spreadsheetなど様々なデータソースをもとにおしゃれなレポートを無料で作成・共有できます。 下図はテンプレートギャラリーのスクショです。こんな感じのレポートが簡単に作れるようになっています。 厨二心をくすぐられますね。 行レベルのセキュリティとは レポートを作成する際に行レベルのセキュリティを設定すると、同じデータソースから作成したレポートでもアクセスするアカウントによって表示するデータを変更することができます。 公式の説明を引用しますと、下の画像の上段はとあるSpreadsheetの表、下段はそのシートをデータソースとして作成した Looker studio の表です。 この例では行レベルのセキュリティは設定されていません。Sprea

    Looker Studio の行レベルのセキュリティが便利です - Qiita
    syou6162
    syou6162 2024/07/04
  • Looker Studio: Looker Studio からサービスアカウントを使用して BigQuery と接続する - Qiita

    Looker Studio のデータソースとして BigQuery を利用する際に、オーナーの認証情報ではなくサービスアカウントの認証情報を利用したい場合があります。 この手順を実施してサービスアカウントを作成し、データソースの認証情報に設定する事でオーナーの認証情報と切り離せるので、オーナーが退職する場合などに便利です。 Looker Studio 用に Google Cloud サービス アカウントを設定する 面倒くさいので、スクリプトを作成しました。 変数定義部分を書き換えて、Cloud Shell で実行すれば動作するかと思います。 #!/bin/bash # 参考URL: # https://support.google.com/looker-studio/answer/10835295#zippy=%2C%E3%81%93%E3%81%AE%E8%A8%98%E4%BA%8B%

    Looker Studio: Looker Studio からサービスアカウントを使用して BigQuery と接続する - Qiita
    syou6162
    syou6162 2024/07/04
  • Looker Studio の便利なパラメータの使い方 - Qiita

    この記事ではLookerStudioのURLパラメータの機能を使うことで動的にダッシュボードのグラフを出力する方法について解説します。 こんにちは、データ統括部 BIグループのKatsumiです。この記事は"Timee Advent Calendar 2023" の20日目の記事です。 導入 LookerStudioではパラメータの機能を使うと、動的にダッシュボードのグラフを出力することができます。さらにパラメータ機能は検索や絞り込みをLookerStudio側で行うのではなくクエリ実行時に抽出することが可能になります。データセットが大きい場合でもある程度高速に結果を表示することができます。 また、URLパラメータ機能を使うことで、外部からURLを通じて情報を付与できるため、擬似的なドリルダウン分析を作成することや、「CRM」や「スプレッドシート」などから識別情報を付与してレポートを作成す

    Looker Studio の便利なパラメータの使い方 - Qiita
    syou6162
    syou6162 2024/07/04
  • 後回しにするとどうしようもなくなる(かもしれない)Looker Studioの権限を理解する - Qiita

    はじめに Looker StudioはGoogleが無料で提供しているBIツールです。無料でもそこそこの機能が揃っていることで、PoC的に運用を進めていくには非常に便利なものになっています。私もデータ活用の取り組みを小さく始めていくにあたっては、大変重宝しています。 とはいえ、無料のツールである以上、細かい調整はなかなかききにくいのも事実です。今回は、後回しにするとどうしようもなくなる(かもしれない)、Looker Studioの権限についてまとめておきます。 こんな方におすすめ 組織的な/組織をまたいだダッシュボード構築を進めようとしている方 Looker Studioの利用経験が浅く、先に重要な設定を理解しておきたい方 Looker Studioで重要な2つの権限設定 Looker Studioを使うにあたっての重要な設定として、2つの権限設定があります。それは、 レポートのオーナー権

    後回しにするとどうしようもなくなる(かもしれない)Looker Studioの権限を理解する - Qiita
    syou6162
    syou6162 2024/07/04
  • Looker Studioで組織内に魔境を作らないための裏技的Tips集 - Qiita

    はじめに Looker StudioはGoogleが無料で提供しているBIツールです。無料でもかなりの機能が揃っており、BIの活用にあたっては大変重宝する存在になっています。ただし、以前「後回しにするとどうしようもなくなる(かもしれない)Looker Studioの権限を理解する」で整理したように、組織管理という観点で難があるのは事実です。 それは例えば、レポートを組織的に管理する機能がなかったり、Google CloudのIAMを利用した権限管理ができなかったりすることが挙げられます。Looker Studio Proという有償版のサービスでは、こうした組織管理を円滑にするような機能拡充がされています。 とはいえ、実は様々なデータをフル活用すると無料版でもできることは多くあります。今回は、そんな裏技的Tipsを5つ紹介しようと思います。 こんな方におすすめ Looker Studioの組

    Looker Studioで組織内に魔境を作らないための裏技的Tips集 - Qiita
    syou6162
    syou6162 2024/07/03
  • Dataflow で Python の外部パッケージをインストールする - Qiita

    背景 Vertex AI Model Registry でバージョン管理しているモデルを使用して並列に予測を行う Dataflow のジョブを作成したくなったが、 Vertex AI の SDK である google-cloud-aiplatformDataflow ワーカーにインストールされていなかった。 やりたいこと Dataflow + Python でバッチジョブを作るときに任意のパッケージをインストールしたい。 ちなみにデフォルトでインストールされるパッケージはジョブの記述に使用している Python と Apache Beam SDK のバージョンによって異なっており、以下からパッケージのリストを参照できる。 google-cloud-* 系のパッケージや numpy, pandas などメジャーなパッケージは元からインストールされているものの、上記にないパッケージは自分

    Dataflow で Python の外部パッケージをインストールする - Qiita
    syou6162
    syou6162 2024/06/09
  • BigQuery の Partitioned Table 調査記録 - Qiita

    embulk-output-bigquery の Partitioned Table 対応で調べてたので、その時に調べたものを雑にまとめておく。APIを直接叩いて実装しているので、bq コマンドでの使い方については調べていない。 EDIT: 現在は DATE もしくは TIMESTAMP カラムを指定した partitioning が可能ですが、ドキュメント記載時にはまだ BigQuery がサポートしていなかったため、その記述が抜けています。 TL; DR 基的に tableId に partition decorator ($YYYYMMDD) を指定して操作する DAYパーティションしか(今のところ)切れない。 特定パーティションのデータを置き換えたい場合は、パーティションを指定して、writeDisposition: 'WRITE_TRUNCATE'として load (または

    BigQuery の Partitioned Table 調査記録 - Qiita
    syou6162
    syou6162 2024/06/07
  • Qiita

    syou6162
    syou6162 2024/06/06
    なんだこれ...
  • GitHub Actionsでfirebaseのdeploy時の認証をトークンからGCPのサービスアカウントに切り替える - Qiita

    firebase deploy --token="$FIREBASE_TOKEN"でデプロイすると、 Authenticating with `--token` is deprecated and will be removed in a future major version of `firebase-tools`. Instead, use a service account key with `GOOGLE_APPLICATION_CREDENTIALS`: https://cloud.google.com/docs/authentication/getting-started と指摘されてしまいます。 CircleCIの値上がりによって、CircleCIからfirebaseにデプロイしていたサイトのCI/CDをGitHub Actionsに乗り換えていたのですが、せっかくなのでこ

    GitHub Actionsでfirebaseのdeploy時の認証をトークンからGCPのサービスアカウントに切り替える - Qiita
    syou6162
    syou6162 2024/04/08
  • 【GitHub Actions】ログ内容をAnnotationsに表示する - Qiita

    はじめに GitHub Actionsで実行したチェック(自動テスト・静的解析ツール等)が失敗した時、 Jobの実行ログを確認するのは地味に手間がかかります。 このときActionsのSummaryにあるAnnotationsに、 「Jobが失敗した」という通知に加えてエラー内容も表示されていると、 なぜ失敗したかをより簡単に把握できるようになります。 この記事ではProblem Matchersを使ってエラー内容を確認しやすくする方法についてまとめました。 Problem Matchersとは Problem MatchersはGitHub Actionsに備わったツールの1つです。 指定した正規表現をもとにJobのログ出力をスキャンし、 マッチした部分をAnnotationsに表示してくれます。 Problem Matchersの使い方 ここでは例として以下のように出力されたログをAn

    【GitHub Actions】ログ内容をAnnotationsに表示する - Qiita
    syou6162
    syou6162 2024/03/12
  • git commit --fixup が便利 - Qiita

    始めに 私は最近エンジニアに復帰し、現場で便利に思ったことを今後記事にできたらと思っています。 そして1発目は、gitのオプションについて記事を書いてみようと思います。 --fixup はどんな時に使えるの? Pull Requestなどで、軽微な指摘や後から気付いた修正など、来の機能のコミットとは別に修正コミットを残すのは少し嫌な時がありますよね。 コミットが一つ手前であれば、直前のコミットを修正してくれる git commit --amendなどで対応できますが、3つ前のコミットに修正を混ぜ込みたい時などは、少し大変。 そんな時に便利なのが、この git commit --fixupです。 使い方 例えば、下記のコミットの状況で、Fix article pageのコミットに対して、追加の修正をしたいとする。 ❯ git log --oneline 1131338365 (HEAD -

    git commit --fixup が便利 - Qiita
    syou6162
    syou6162 2024/02/28
  • VSCodeでtmuxの挙動を再現したい - Qiita

    tmuxでのペインを作ったり消したり切り替えたりの動作を、VSCodeでもそれっぽく再現するために設定した項目をさらします。 tmuxのデフォルトのプレフィクスがctrl+bなので、その設定でtmuxを操作しているときと同じような挙動をするようにkeybindings.jsonに以下の設定を加えました ペイン // エディタとターミナルの移動 { "key": "ctrl+b o", "command": "workbench.action.terminal.focus", "when": "editorFocus" }, { "key": "ctrl+b o", "command": "workbench.action.focusActiveEditorGroup", "when": "terminalFocus" }, // ターミナルの分割(縦のみ) { "key": "ctrl+b

    VSCodeでtmuxの挙動を再現したい - Qiita
    syou6162
    syou6162 2024/02/27
  • GitHub Copilotが便利になったのでターミナルもVSCodeで良いのでは?という話 - Qiita

    この記事はラクスアドベントカレンダー2の17日目です。 先日のVSCodeのアップデートで、GitHub Copilotを使うとターミナル操作が便利になりました。 これにより、別途ターミナルのアプリを使わずにすべてVSCode上で操作した方が便利なのでは?となりました。 アップデート前までどうしてたか MaciTerm2上で、GitHub CopilotのCLI版(パブリックベータ)で入力補完やコマンドの意味を調べたりしていました。 それ自体は便利でしたが、いくつかの不便な点もありました。 使い方がちょっと煩雑だった 例えばコマンドをサジェストして欲しい場合、gh copilot suggest 'gitで1つ前のコミットを取り消したい'のようにタイプする文字数も多くなり、またそれが一般的なコマンド or ghコマンド or gitコマンドかの3択に答えないといけなくて面倒でした。 ss

    GitHub Copilotが便利になったのでターミナルもVSCodeで良いのでは?という話 - Qiita
    syou6162
    syou6162 2024/02/27
  • VSCode ターミナル上で CTRL + n, CTRL + p を有効にする - Qiita

    何番煎じかわからないですが、自分が使っている設定を📝しておきます。 VS Code のターミナル上のキーバインドを設定して、いい感じにターミナルを操作するやり方です。 設定方法 VSCode上で、コマンドパレットを開く (CTRL + Shift + P) key json と入力するとメニューが絞り込まれる。 基設定:キーボードショートカットを開く(JSON) を選択。 設定内容 以下の設定内容を記載します。 // 既定値を上書きするには、このファイル内にキー バインドを挿入します [ { "key": "ctrl+p", "command": "cursorUp", "when": "terminalFocus" }, { "key": "ctrl+n", "command": "cursorDown", "when": "terminalFocus" }, { "key": "c

    VSCode ターミナル上で CTRL + n, CTRL + p を有効にする - Qiita
    syou6162
    syou6162 2024/02/01