colopl_713067のブックマーク (148)

  • 2022年下半期ライトニングトーク大会を開催しました!

    はじめに こんにちは! GMOインサイトのMです。 11月に2022年下半期LT大会を開催いたしました。 ライトニングトーク大会は弊社のエンジニアの方を対象に、持ち時間6分でテックに関連する知識や技術力向上についてわかりやすく発表する大会です。今回は6名のエンジニアがご参加いただきました。 今回の流れや前回との違いを紹介します。 準備 今年も生配信ソフトのOBSを使ってYouTube Liveで実施しました。 前回のLT大会でいくつかのマイクを使い、一つのマイクの音声入力設定がBlackHoleという仮想オーディオドライバに置き換わった原因で音声のトラブルが起きました。 今回のLT大会でYamaha YVC-1000という会議室用のマイクを利用しました。このシンプルな交換で司会者のマイクと登壇者のマイクを切り替える必要がなくなりました! 番 今回からLT大会表彰が変わりました。 最優秀賞

    2022年下半期ライトニングトーク大会を開催しました!
  • ひとつのリポジトリから複数サービスをビルドしやすくする

    こんにちは。GMOアドマーケティングのK.Mです。 ひとつのリポジトリで管理するソースコードから複数のサービスを提供したいことがあったりします。 ひとつのリポジトリではひとつのサービスをというほうが綺麗なのかもしれませんが、過渡期などいろんな経緯でそういうケースもままありそうに思います。 ということで、ひとつのリポジトリから複数サービスに対してビルドやデプロイがしやすいように、Cloud Buildのビルド構成ファイルについて試してみます。 公式ドキュメントを参考にビルド構成ファイルを作成しますが、その際にサービス名を調整するなどしてそれぞれ作成します。 – cloudbuild-SERVICE_A.yaml steps: # Build the container image - name: 'gcr.io/cloud-builders/docker' args: ['build', '

    ひとつのリポジトリから複数サービスをビルドしやすくする
  • BigQueryのCloudSQL連携クエリを試してみました。

    この記事は GMOアドマーケティング Advent Calendar 2022 24日目の記事です。 こんにちは。GMOアドマーケティングのH.Tと申します。 今回はBigQueryの連携クエリを試してみたのでご紹介いたします。 連携クエリとは BigQueryからCloud SpannerとCloud SQLデータにクエリを実行できる機能になります。(公式ドキュメント) 現状私の担当しているプロダクトでCloudSQLのデータをバッチ処理でBigQueryに同期し運用の分析に使用しています。 こちらの機能を使って同期処理を廃止できないかと思い試してみたのですが当に簡単な設定だけでSQLが実行できました。 以下手順になります。 ※こちらの機能を試すにはGCPアカウントを開設する必要があり、BigQueryは有料サービスとなります。 料金についての詳細はBigQueryの公式ドキュメントを

    BigQueryのCloudSQL連携クエリを試してみました。
  • Cookieが使えなくなる?今からでも遅くないプライバシーサンドボックス

    この記事は GMOアドマーケティング Advent Calendar 2022 25日目の記事です。 みなさんこんにちは、GMOアドマーケティングの星野です。 今年のアドベントカレンダーも日で最後です! GMOアドマーケティングはアドテクノロジー(アドテク)をメインにしたプロダクトを展開しています。 最終日は、アドテクでは避けては通れない話題、「プライバシーサンドボックス」について書いていきます。 Cookieが使えなくなるみたいな話はなんとなく知っているけど、どうして使えなくなるのかの背景や具体的にどういう使い方ができなくなるのかなどは曖昧な方も多いと思います。 そういった方に向けて基的な内容について解説をしつつ、今年発表された最新情報もまとめていきます。 「Cookieが使えなくなる」とは? 「Cookieが使えなくなる」は正確ではなく、正しくは、「3rd Party Cookie

    Cookieが使えなくなる?今からでも遅くないプライバシーサンドボックス
  • BacklogのイベントをSlackに送信

    流れとしては Backlogの課題の追加等のイベント発生 → Cloud Functions(GCP)で中継 → Slackに送信 のようにしました。 BacklogにWebhookが用意されているのでイベント発生時に指定URLへBacklogデータを送信してくれますが、 そのままでは使えないので加工する処理を入れる必要があります。

    BacklogのイベントをSlackに送信
  • 非エンジニアPdMがVertex AIで広告配信用の機械学習モデルを作成してみた

    この記事は GMOアドマーケティング Advent Calendar 2022 23日目の記事です。 こんにちは、GMOアドマーケティングの平木と申します。 今回は、非エンジニアPdMの自分が、Vertex AIで広告配信用の機械学習モデルを作成してみた体験について書いていきたいと思います。 Vertex AIとは Vertex AIとはGoogle Cloud Platform 上における機械学習プラットフォームで、データの前処理からモデル構築、予測やデプロイまでを一元的に行うことができるプラットフォームです。 Vertex AIのAutoML を使用することで、コードを書かずにGUIベースの操作のみでモデルをトレーニングすることができるため、学習を兼ねて広告配信用の機械学習モデルを作成してみました。 何を予測する機械学習モデルを作成するか 今回は、広告配信用の機械学習モデルとしてより初

    非エンジニアPdMがVertex AIで広告配信用の機械学習モデルを作成してみた
  • SHAPで自然言語処理モデルネガポジ判定の中身を覗いてみる

    この記事は GMOアドマーケティングAdvent Calendar 2022 20日目の記事です。 みなさんこんにちは、GMOアドマーケティングのM.Hです。 今回はXAIの一つである「SHAP」というライブラリについて、自然言語処理向けの機械学習モデルの観点から書いていこうと思います。 はじめに 昨今ではもはや聞き馴染みとなった「機械学習」や「AI」ですが、そのモデルはコンピューティングシステムの計算能力の向上と共に加速度的な速さで複雑化してきています。もちろんそのようなモデルを使ってビジネスに貢献ができれば嬉しいのですが、モデルの中身に関してはブラックボックス化されていることがほとんどで、「何が要因となってこの結果がもたらされたのか?」という部分はなおざりになりがちです。 機械学習のビジネス利用が当たり前に行われるようになった今日では、こういった原因や要因に関して人間がわかる形で示そう

    SHAPで自然言語処理モデルネガポジ判定の中身を覗いてみる
  • 自然言語処理モデル(BERT)で文の意味上の類似度を計算

    はじめに この記事は GMOアドマーケティング Advent Calendar 2022 21日目の記事です。 おはようございます。こんにちは。こんばんは。 GMOアドマーケティングのY-Kです。 今回は、 「最近話題の自然言語処理の機械学習のモデルを自分でも軽く触ってみたい! でも、難しいこと書かれててわからない(号泣)」 という層に向けて、 数ある自然言語処理モデルの中でも有名なBERTモデルを使って、文同士の意味の類似度を計算するという簡単なタスクを難しいことは極力置いといてやっていきます。 準備 今回もGoogle Colab上で行います。 https://colab.research.google.com/?hl=ja BERTの学習には時間と膨大な学習データ、豊富なインターネットリソースが必要なので、 Hugging Face上で公開されている学習済みBERTモデルを利用してい

    自然言語処理モデル(BERT)で文の意味上の類似度を計算
  • Googleアナリティクス4(GA4)を使ってみて

    この記事は GMOアドマーケティング Advent Calendar 2022 17日目の記事です。 はじめに こんにちは、GMOアドマーケティングのY.Gです。 あっという間に今年も終わろうとしておりますが、来年7月のユニバーサルアナリティクス(UA)の終了期限が格的に迫ってきました。 皆様はGoogleアナリティクス4(GA4)への移行は進んでおりますでしょうか。 我々の部署では現在UAとGA4を移行期間として併用しながら、サイトのUIや運用方法の改善を日々取り組んでいます。 今回はGA4を導入して約半年経ちましたので、使ってみた感想をお伝えします。 従来のユニバーサルアナリティクス(UA)とGoogleアナリティクス4(GA4)の違い まずUAとGA4は大きな違いを言うと、 1.コンセプトが違う 従来のUAの「セッション中心の分析」からGA4「顧客(ユーザー)中心の分析」が可能とな

    Googleアナリティクス4(GA4)を使ってみて
  • スケルトンスクリーン(ローディング)をJavaScriptとCSSのみで実装

    この記事は GMOアドマーケティング Advent Calendar 2022 18日目の記事です。 こんにちは、22新卒のGMOアドマーケティングの天河です。 みなさん、普段スケルトンスクリーンローディングはどうやって実装していますか? こういうやつ 大体の方は、ライブラリでクラスぽいっと入れ込んで、秒で実装完了!という感じですよね。 仮にそのライブラリを使用せず、生のJavaScriptCSSのみで書けって言われたらどうでしょう。 ということでさっそく書いてみました。 完成 HTML <div class="_article _article_skelton"> <div class="_article_art_img"></div> <div class="_article_content"> <div class="_article_art_title"></div> <div

    スケルトンスクリーン(ローディング)をJavaScriptとCSSのみで実装
  • GMO SSPのCloud(Google Cloud Platform)移行の失敗と成功のまとめ

    この記事はGMOアドマーケティング Advent Calendar 202219日目の記事です。 こんにちはGMOアドマーケティングのy.yです。 今回は2022/12/06, 07に開催されたGMO Developers Dayで発表をした 『「GMO SSP」のクラウド移行(GCP)、失敗と成功をまとめてみた!』の内容になります。 時間の関係上で発表できなかった内容も少しだけ追加しています。 SSPというのは広告をリアルタイムにWebコンテンツに配信するシステムです。 接続しているDSPやアドネットワークの広告の中で、一番単価が高く ユーザーにマッチした広告をリアルタイムに配信します。 GMOSSPというのはGMOアドマーケティングにて提供している インターネット広告を配信するSSPプロダクトです。 GMOSSPは自社運営にてコンテンツ集客に特化した 広告配信DSPの「ReeMo」と国

    GMO SSPのCloud(Google Cloud Platform)移行の失敗と成功のまとめ
  • JavaのStructured Concurrency(Incubator)について

    この記事は GMOアドマーケティング Advent Calendar 2022 13日目の記事です。 GMOアドマーケティングのT.Nです。 今回はJava 19でIncubatorの機能として追加されたStructured Concurrencyを試した内容をまとめました。 ブログを書く上で、以下のページを参考にしました。 https://openjdk.org/jeps/428 https://openjdk.org/jeps/437 Incubatorの機能なので、今後仕様が変わる可能性はあります。 Structured Concurrencyについて Structured Concurrencyは、 マルチスレッドプログラミングをシンプルにするために追加された機能です。 異なるスレッドで実行される複数のタスクを一つのユニットとして扱うことで、 エラーハンドリングなどを容易にします。

    JavaのStructured Concurrency(Incubator)について
  • GMOSSPにスクラムを本気で導入してみた

    この記事は GMOアドマーケティング Advent Calendar 2022 14日目の記事です。 はじめに こんにちは。GMOアドマーケティングのM.Nです。 私は元々TAXELのマネージャーとしてマネジメントや開発を行っていましたが、今年からGMOSSPのマネージャーを兼任することになりました。 経緯に関してはこちらの記事を参照してください。 GMOSSPのマネジメント GMOSSPのマネジメントを行うことになりましたが、引き継いでから特に気になったのは以下の点でした。 どの機能がいつリリースできるのかわからない&よく聞かれる誰が何の開発をしているのかよくわからない&よく聞かれる差し込みが多すぎてタスクの優先順位がわからない なぜこのような状態になっていたのでしょうか? GMOSSPはハブ的な位置づけのプロダクトであるという性質上対応待ちというステータスになることが多く、1人で複数案

    GMOSSPにスクラムを本気で導入してみた
  • エンジニアの「伝える」技術を考える

    この記事は GMOアドマーケティング Advent Calendar 2022 15日目の記事です。 はじめに こんにちは。 GMOアドマーケティングのKONCEです。 エンジニアは日々の仕事で、上司やディレクターに仕様や実装を説明したり、営業に操作説明を行ったりなど「伝える」業務はわりと多くあるかと思います。 僕自身はコミュニケーションは嫌いではないのでこういった業務も嫌いではないです。もちろん逆の方もいるかと思います。今回は「伝える」についてテクニックなど考えてみてみたいと思います。 書籍を参考にしてみる 上記に嫌いではないと書きましたが、別にそれが上手いという自信があるわけではありませんし、特別にトレーニングを積んだといったこともありません、勘だけでやっていくのも良くないので書籍を参考にしてみます。 書籍は「説明する」をプランニング、ライティング、デリバリーに分け説明力を上げるため

    エンジニアの「伝える」技術を考える
  • テキストエリアを入力値によって動的に変化させる

    document.querySelectorAll(".auto-adjust-sample-textarea").forEach((targetArea) => { // 初期値によってtextarea高さをadjust let lineHeight = Number(targetArea.rows); while (targetArea.scrollHeight > targetArea.offsetHeight){ lineHeight++; targetArea.rows = lineHeight; } // 入力値によってtextarea高さをadjust this.addEventListener('input', (e) => { e.srcElement.style.height = 0 e.srcElement.style.height = e.srcElement.sc

    テキストエリアを入力値によって動的に変化させる
  • Google Cloud Workflowsで日付を指定して実行する

    この記事は GMOアドマーケティング Advent Calendar 2022 11日目の記事です。 はじめに GMOアドマーケティングの吉岡です。 今回は BigQueryのみに存在するレポートテーブルのレコードをCloudSQLに同期する必要があったため、Google Cloud Workflowsというサービスを使って実装してみました。 バッチ実行が失敗した際に日付を指定して再実行できると便利なので、今回はこちらのやり方を紹介します。 Cloud Workflowsとは? Cloud Workflowsとは、Google CloudとHTTPベースのAPIサービスをサーバーレスワークフローと統合するサービス。 詳細はこちら→ Cloud Workflows公式ページ つい先日、GoogleのProfessional Cloud Architect試験を受けたのですが、多くのサービスに

    Google Cloud Workflowsで日付を指定して実行する
  • 費用ベースの確約利用割引(Flexible CUD)について

    この記事は GMOアドマーケティング Advent Calendar 2022 10日目の記事です。 こんにちは。 GMOアドマーケティングの@zakisanbaimanです。 2022/11/5のGCP公式ブログ「Flexible committed use discounts — a simple new way to discount Compute Engine instances」にて「費用ベースの確約利用割引(Flexible CUD)」が発表されました。 従来は「リソースベースの確約利用割引」のみでしたが、種類が1つ増えることになります。 一体何が違うのか、使い分けについて調べてみました。 リソースベースの確約利用割引(既存) 以前から存在するリソースベースの確約利用割引はvCPUやメモリなどの各種リソース使用量を1年or3年単位で確約することで割引を受けることができます。

    費用ベースの確約利用割引(Flexible CUD)について
  • MIMEスニッフィングを利用した脆弱性とその対策方法

    この記事は GMOアドマーケティング Advent Calendar 2022 9日目の記事です。 こんにちは、GMOアドマーケティングのR.Yです。 普段はRuby on RailsによるWebサービスの開発やそれらの脆弱性診断などをやっています。 今回はContent-TypeとMIMEスニッフィングを悪用した脆弱性とその対策方法について書いていきたいと思います。 Content-Typeとは Content-TypeはHTTPヘッダーのフィールドになります。Content-Typeには体(body)として送信するデータが「どんなファイルなのか」がMIMEタイプとして保持されています。そして、WebサーバとWebブラウザ間でファイルのやりとりをする場合はMIMEタイプを参照し、そのファイルをどのように扱うか決めています。 MIMEタイプには text/plain プレーンテキスト t

    MIMEスニッフィングを利用した脆弱性とその対策方法
  • GCP Professional Cloud Data Engineerに合格しました

    こんにちは。 GMOアドマーケティングのT.Cです。 Professional Cloud Architect取得(2021年7月)とProfessional Cloud Developer取得(2022年1月)に続いて、 今回(2022年7月)はProfessional Cloud Data Engineerを取得したお話をいたします。 試験の準備 ■ 試験ガイド(GCP公式サイト) 試験に出題される可能性がある内容がまとめられているので、どの部分を中心に見ていけばいいのか把握できました。 ■ Professional Cloud Data Engineer模擬試験(GCP公式サイト) 実際の業務とPCAやPCDの取得の準備のおかげだと思いますが、最初のtryで2~3問を除いて、全て正解だったので、間違えた問題の確認と試験ガイドを見て足りなさそうな部分をドキュメントやネットから補習してそ

    GCP Professional Cloud Data Engineerに合格しました
  • MariaDB Galera ClusterでGET_LOCKを使ったらクラッシュした

    GMOアドマーケティングのT.Kです。アプリケーションの同時実行を制御するためにGET_LOCKを使ったら、DBがクラッシュした事例に遭遇したので紹介します。 対象バージョン MariaDB 10.3.36 事前準備 CREATE TABLE hoge ( id INT NOT NULL, updated_at DATETIME NOT NULL, PRIMARY KEY (id) ); INSERT INTO hoge(id, updated_at) VALUES (1, now());

    MariaDB Galera ClusterでGET_LOCKを使ったらクラッシュした