k_osawaのブックマーク (166)

  • 初めてのTypeScript・Composition APIでつまづいた事とその解決方法 - MicroAd Developers Blog

    こんにちは。 マイクロアドでWebエンジニアをしている木田です。 今回は、新たに着手した画面開発の業務においてつまづいたこと、その解決方法についてお話しします。 はじめに 記事では、以下の言語・フレームワークが利用可能な状態を前提に話を進めます。 TypeScript (v3.7.3) Vue.js (v2.6.10) Composition API (v0.3.4) ※過去の記事に、Vue3に向けてComposition APIを導入した話もありますのでこちらもぜひご覧ください。 ■外部モジュールのimport文が全てコンパイルエラーとなる つまづいたこと まずは環境構築の時のお話です。 GitHubのリポジトリからcloneしてきてVSCodeで.vueファイルを開いた時にそれは起こりました。 なんと外部モジュールをimportしている箇所が全て真っ赤になっているのです。 シンタック

    初めてのTypeScript・Composition APIでつまづいた事とその解決方法 - MicroAd Developers Blog
  • 数理最適化による入札関数選択 - MicroAd Developers Blog

    はじめに こんにちは. マイクロアドで機械学習エンジニアをしている福島です. 主にReal-Time-Bidding (RTB)におけるClick Through Rate/Conversion Rate(CTR/CVR)予測や入札最適化の研究・開発を担当しています. マイクロアドでは, UNIVERSE Adsというプロダクトで予算消化制御と配信効果の最大化を目的として, 数理最適化による入札関数選択を導入しました. 今回は, 新たに導入した入札最適化について紹介します. はじめに 問題設定・定式化 線形計画問題の設計 予算の分配 期待消化金額の算出 試験導入結果 終わりに 問題設定・定式化 RTBでは, 広告主とメディア間でリアルタイムにオークションが開催され, オークションに勝利したDemand Side Platform (DSP)がコストを支払い広告を表示する権利を獲得します.

    数理最適化による入札関数選択 - MicroAd Developers Blog
    k_osawa
    k_osawa 2022/10/15
  • Scala マクロアノテーションに入門するための準備体操 - MicroAd Developers Blog

    Scala マクロに入門するための準備体操 サーバサイドエンジニアの飛田です。 マイクロアドの開発チームでは、以下のようにマクロアノテーションを使って、 処理時間が重要なメソッドのマイクロベンチマークを計測することがあります。 // コンパイル時に対象のメソッドの実行時間をログに吐くようなアノテーション(プロダクトコードではもっと複雑な処理をしていますが、このサンプルコードでは分かりやすさ重視でメソッドのシグネチャ等を簡素化しています) @profiled def process(???) 私自身、Scalaマクロおよびメタプログラミング自体が初めてで、 マクロを理解するのに苦戦したことを踏まえて、 この記事では、Scala2.13のマクロについて共有させていただきます。 対象読者はScalaマクロを使ったことがない かつ メタプログラミングをやったことがない人を想定しています。 Scal

    Scala マクロアノテーションに入門するための準備体操 - MicroAd Developers Blog
  • 約10万行の規模のフロントエンド環境にTypeScriptをマイグレーションした話 - MicroAd Developers Blog

    お久しぶりです。フロントエンドエンジニアの川上です。 業務では、UNIVERSE Ads のフロントエンド開発、フロントエンドの開発環境改善などを担当しています。 はじめに TypeScriptの導入について 導入にメリットがあると結論を出した理由 ① フロントエンドでテスト駆動様開発が可能になる ② Vueコンポーネント に対して TypeScript の恩恵を与えられる 具体的に解説 1つ目のメリットについて 2つ目のメリットについて おわりに はじめに マイクロアドには様々なプロダクトがありますが、私の担当している UNIVERSE Ads について、 フロントエンドフレームワークにVue.js を利用しています。 jp.vuejs.org 開発構成としては、MVVMでバックエンドとフロントエンドはそれぞれ、Spring Boot(Kotlin, Java), Vue.js(Type

    約10万行の規模のフロントエンド環境にTypeScriptをマイグレーションした話 - MicroAd Developers Blog
  • 22卒の開発研修でMVP投票システムを作った話 - MicroAd Developers Blog

    初めに 初めまして、マイクロアドの2022年新卒チーム(高橋id: tkhs_t, 渡部id: S8s8Max)です。 この度私たちは、新卒開発研修で「MVP投票システム」を作成しました。 今回の技術ブログでは、上記の2人でMVP投票システムを作り上げた過程を紹介していきます! 初めに 開発研修について マイクロアドのMVP投票制度について 成果物 開発研修の流れ システム設計 開発環境・アーキテクチャ 苦労したこと 面白かったこと 最後に 開発研修について まずは、マイクロアドの研修制度について説明します。 マイクロアドのエンジニア職の新卒研修には、講義研修と開発研修があります。 講義研修では、先輩社員の講義を聞いて課題をこなしていく研修で、開発研修は新卒社員のみでプロダクトを開発していく研修です。 開発研修の期間はおよそ2ヶ月です。 サーバの用意など先輩社員に助けていただく箇所はありま

    22卒の開発研修でMVP投票システムを作った話 - MicroAd Developers Blog
  • システム開発部で上場に向けて対応したこと - MicroAd Developers Blog

    はじめに システム開発部IT戦略グループの比嘉です。 マイクロアドは2022年6月29日に東京証券グロース市場へ上場しました。今回はシステム開発部で上場に向けて対応したIT統制について話をします。2018年4月頃からIT統制が格的に始まり、現在も継続しています。あくまで私が関わった範囲となり、上場準備のごく一部となります。 はじめに IT統制とは IT統制は以下の3段階で構成される。 IT全社的統制 (ちゃんと動く) IT全般統制 (きちんと整備する) IT業務処理統制 (適切に使う) 内部統制とは 対応の流れ 対応箇所 IT全般統制 システムの開発、保守に係る管理 システムの運用・管理 IT業務処理統制 売上/仕入などお金の流れが正しいか おわりに IT統制とは IT統制は、内部統制のうち、情報システムに関連するもの。現代の企業活動にはコンピュータ欠かせないため、IT統制によって情報技

    システム開発部で上場に向けて対応したこと - MicroAd Developers Blog
    k_osawa
    k_osawa 2022/08/22
  • データ欠損を検知してデータ整合性を改善した話 - MicroAd Developers Blog

    はじめに こんにちは。マイクロアドでサーバサイドエンジニアをしているカマタです。主に MicroAd COMPASS*1 の開発をしています。 この記事では、レポートデータの整合性を保つために COMPASS レポートシステムで行われた改善について説明します。 改善前 広告のインプレッション数、クリック数、リクエスト数などに関するレポートは COMPASS 管理画面のレポート画面で表示されるだけではなく、仕様に従ってこれらのレポートをメディアおよび DSP パートナーごとの仕様に合わせて共有されています。このレポートデータはアプリケーションからサーバーに出力されたデータから集計されています。 データはサーバーから CDH*2 に転送されていきます。ただし、転送中にミドルウェアの問題が発生してデータが失われることがあります。データ欠損の起こる主な要因は以下になりますが、これらに限定されるもの

    データ欠損を検知してデータ整合性を改善した話 - MicroAd Developers Blog
    k_osawa
    k_osawa 2022/08/22
  • Cookieレス広告技術FLEDGEを試す - MicroAd Developers Blog

    京都研究所・TechLabの今村です、記事ではGoogleが提案するCookieレス広告技術FLEDGEについて簡単な実装コードを交えて説明します。 FLEDGEとは FLEDGEでの広告表示フロー WebAssemblyについて FLEDGEの広告入札を実装する まとめ FLEDGEとは GoogleChromeでの3rd party cookieの廃止を2023年後半に予定しています。1 3rd party cookieの廃止はプライバシーの保護に役立つ一方、広告への依存度が高い無料サイト・サービスはビジネス的に大きな影響を受けます。 そこでGoogleはユーザのプライバシーを保護しつつ、広告ビジネスを維持するための代替技術をプライバシーサンドボックスとして提案しており、 FLEDGE2はその1つになります。 FLEDGEはWeb広告の中で「リターゲティング広告3」を3rd par

    Cookieレス広告技術FLEDGEを試す - MicroAd Developers Blog
  • Atomic, volatile, synchronized について - MicroAd Developers Blog

    はじめに サーバサイドエンジニアの酒井です. 普段はマイクロアドが提供する広告配信プラットフォーム UNIVERSE Ads の DSP 部分の開発をしています. 今回は JVM 言語におけるマルチスレッドプログラミングに関するいくつかの用語の理解と整理を兼ねて記事にします. 背景 まず Real-Time-Bidding (RTB) についてですが, RTB では大量のリクエストが送られてくる中でレスポンスタイムの制約が 100 ms 以内と非常に制約が厳しいです. そのような環境の中マイクロアドの DSP 開発では, レスポンスタイムとスループットの二つのパフォーマンス指標の制約を常に満たすことが非常に重要になっています. この制約を満たせるようアプリケーションのパフォーマンスを上げるため, マルチスレッドプログラミングが用いられることはよくあります. また, マイクロアドの DSP

    Atomic, volatile, synchronized について - MicroAd Developers Blog
  • ケーブリングを改善した話 - MicroAd Developers Blog

    はじめに こんにちは。マイクロアドでインフラエンジニアをしているハダです。 マイクロアドでは、最近データセンターの移設(以後、DC移設と記載)を行いました。 そのDC移設に合わせて、今まで抱えていた問題点を改善すべく、 取り組んだことについて書いていきます。 今回は現場作業で重要なケーブリングについて記事を書いてみました。 技術的な記事ではなく経験談による読み物ですのでサラッと読んでください。 はじめに 移設前の状況 問題になっていたこと 暫定措置 移設時の弊害 思い通りに解約できないラック ラベル貼りの苦行 移設に合わせて改善 ネットワークケーブルの改善 配線のルール なぜ、ルールを2点だけにしたのか 電源ケーブルの改善 配線のルール 非冗長電源のケーブル おわりに ケーブリングでやってはいけないこと 改めて学んだこと 移設前の状況 問題になっていたこと DC移設前は、ラックに搭載してい

    ケーブリングを改善した話 - MicroAd Developers Blog
    k_osawa
    k_osawa 2022/07/01
  • Pythonアプリから参照するデータをMySQLからBigQueryへ切り替える - MicroAd Developers Blog

    はじめに マイクロアドでサーバサイドエンジニアをしているタカギです。 今回はPythonアプリから参照するデータをMySQLからBigQuery1へ切り替えた話になります。 背景 マイクロアドでは様々なデータを扱っています。 広告配信で発生するログはCDH2に蓄積および集計され、その後MySQL、Redis、分析用CDHクラスタ、BigQueryなど別のデータベースに転送され、分析や請求など様々な用途に利用されます。 その中の1つに、1日で1500万件弱のレコード数を扱うMySQLのテーブルがあり、とあるapiからの参照クエリのレスポンス速度が問題になっていました。 その対応策として、データソースをMySQLからBigQueryへ切り替えることになりました。 これまでもBigQueryへデータ転送することはありましたが、アプリケーションからBigQueryを参照するという点で新しい試みでし

    Pythonアプリから参照するデータをMySQLからBigQueryへ切り替える - MicroAd Developers Blog
  • Kotlinのアップグレードをした話 - MicroAd Developers Blog

    マイクロアドシステム開発部の東です。業務では主にUniverse Adsの管理画面開発をしています。 今回はUniverse Adsの管理画面で使用しているKotlinのアップグレードについて、お話ししていきます。 はじめに Universe Adsの管理画面(以下、管理画面)ではサーバーサイドの言語でKotlin(バージョン1.3.71)を用いています。 Kotlinのバージョンは頻繁にアップグレードされており、2021年12月時点での最新バージョンは1.6.101と使用しているバージョンと乖離していました。 そこで開発チームでは、以下のメリットを享受できると考え、管理画面で使用しているKotlinのアップグレードを行うことになりました。 使用しているバージョンが非推奨(サポート対象外)になることを防止できる 開発で言語の最新機能(文法の簡略化や処理速度向上)を利用できる (今まで行って

    Kotlinのアップグレードをした話 - MicroAd Developers Blog
  • strongSwanとFRRでオンプレとGCPをVPN接続 - MicroAd Developers Blog

    はじめに こんにちは。マイクロアドでインフラエンジニアをしているハダです。 3回目のブログ投稿です。 今回のブログは、オンプレの環境とGCPの接続にVPNを使用し、 オンプレ側で使用するVPNゲートウェイをstrongSwan とFRRで構築した内容です。 www.strongswan.org frrouting.org 一般的に、オンプレ側ではVPN対応RouterやVyOSなどのネットワークOSを使ってVPN接続することが多いです。 今回OSはUbuntu20.04を使いstrongSwanとFRRでGCPVPN接続しました。 GCP側はHA VPN Gatewayを使うため、動的ルーティング(BGP)が必須となっています。1 そのため、オンプレ側ではFRRを使いBGP接続できるようにします。 なお、この記事の中ではGCP側のVPN設定の方法及びオンプレ側でのNAT設定等については書

    strongSwanとFRRでオンプレとGCPをVPN接続 - MicroAd Developers Blog
  • 画像から日本語フォントを検索できるサイト「フォントピント」を作った - sola

    こんにちは、街中で「あの文字のフォント何なんだろう?」と思うことよくありますよね。そんなときに役立つサイト「フォントピント(β)」を作りました。 fontpint.com 実際のところ、フォント関連で何か作りたいなと思ってフォント関連の論文を漁っていたところ、Adobeが出している「DeepFont: Identify Your Font from An Image」という画像から使われているフォントを予測する論文を発見しました。論文自体が2015年で方法自体は今からすると古めの印象を受けるのですが、学習データの作り方や予測のさせ方がめちゃくちゃ参考になりこれベースでいけそうだと感じ作ることにしました。3月からちょこちょこやっていたのですが、数日前に4月10日がフォントの日であることを知ってめちゃくちゃ焦って作りましたが、何とか形にはすることができました。 サービス的な部分 類似サービスと

    画像から日本語フォントを検索できるサイト「フォントピント」を作った - sola
    k_osawa
    k_osawa 2022/05/19
  • 開発チームのスプリント密着とツール紹介 - MicroAd Developers Blog

    システム開発部アプリケーションエンジニアの EDO です。 マイクロアドでは各チームがプロダクトや領域 (画面, 配信など) に分かれての機能開発を行っています。案件によっては複数プロダクトにまたがることもあり、その場合は複数チームでの合同の開発となります。 各チームの役割についてはdevelopers.microad.co.jpのシステム開発部の組織構成をご覧ください。 今回の記事では、僕が所属するチームで取り入れているスクラム開発に触れながら、リモート環境下で利用しているツール類について紹介していきます。スクラムアジャイル開発における用語や役割の具体的説明については記事では割愛します。 スプリントプランニング 【スプリントプランニングのざっくり説明】 Jira Software Google Meet, スプレッドシート デイリースクラム (朝会) 【デイリースクラムのざっくり説明

    開発チームのスプリント密着とツール紹介 - MicroAd Developers Blog
  • ビズパマガジン | 広告・媒体資料を探すならビズパ

    2024年04月17日 【ニュース解説】CTVの視聴時間は順調に伸び、「YouTube」が「日テレ」に続いて2位に

    ビズパマガジン | 広告・媒体資料を探すならビズパ
    k_osawa
    k_osawa 2022/05/10
  • 予算消化制御のための入札率のfeedback制御 - MicroAd Developers Blog

    はじめに こんにちは. マイクロアドで機械学習エンジニアをしている福島です. 主にReal-Time-Bidding (RTB)におけるClick Through Rate/Conversion Rate(CTR/CVR)予測や入札最適化の研究・開発を担当しています. 現在マイクロアドでは, UNIVERSE Adsというプロダクトで予算配分制御のための入札率のfeedback制御を導入しています. 今回は, 入札率のfeedback制御について紹介します. はじめに RTBにおける予算管理 入札率のfeedback制御 目標消化金額の計算 導入結果 終わりに RTBにおける予算管理 RTBでは下図のように, 広告主とメディア間でリアルタイムにオークションが開催され, オークションに勝利したDemand Side Platform (DSP)がコストを支払い広告を表示する権利を獲得します.

    予算消化制御のための入札率のfeedback制御 - MicroAd Developers Blog
  • Grafanaの画面操作を Playwright を使って便利にする - MicroAd Developers Blog

    京都研究所で監視チームのお手伝いをさせてもらってるエンジニアの I です。マイクロアドでは監視の可視化ツールとしてGrafanaやKibanaを活用しています。今回は普段Grafanaを使っていて不便な点を補うためにコードを書いて解決した話を紹介します。 Grafana の library panels 社内で監視用の可視化で利用しているGrafanaで、最近のバージョン8になってlibrary panelsという機能が導入されました。 grafana.com このlibrary panelsはパネル単位で作ったグラフを再利用するものですが、パネルはどこかのダッシュボード内に作る時にダッシュボード側の変数を参照して作成されている事が多いのですが、単純に既存のパネルをライブラリ的に組み合わせても、変数の部分が動作しないことも多く、簡単な組み合わせで表示できる範囲が限られるのではないかと思いま

    Grafanaの画面操作を Playwright を使って便利にする - MicroAd Developers Blog
    k_osawa
    k_osawa 2022/04/04
  • Scalaのリテラル型について調べてみた! - MicroAd Developers Blog

    サーバサイドエンジニアの飛田です。 主にDSPの開発を行っています。 今回の記事では、Scalaのリテラル型について調査しましたので、 ここで共有させていただきます。 リテラル型 SIP-23 - Literal-based singleton types | Scala Documentation リテラル型とは、特定の値だけを取り扱うことができるような型です。 例えば、"aaa"という値しか受け付けないA型というものを定義してやると、 "aaa"はA型として取り扱うことができますが、"bbb"のような値はA型として扱うことができません。 例: scala> type A = "aaa" type A scala> val a: A = "aaa" val a: A = aaa scala> val b: A = "bbb" ^ error: type mismatch; found :

    Scalaのリテラル型について調べてみた! - MicroAd Developers Blog
    k_osawa
    k_osawa 2022/04/04
  • PCへのログインアカウントをGoogleに変更した話 - MicroAd Developers Blog

    マイクロアドで社内SEをしています高橋です。 今回はマイクロアドがPCログインをActiveDirectryユーザーを利用した方法からGoogleWorkspaceのアカウントを利用した方法に切り替えているお話をします。 従来のアカウント管理 マイクロアドではWindowsを利用する事が多かったため、ローカルのWindowsServerを利用してActiveDirectryを構築し、PCへログインするアカウントの管理をしていました。 何故ログインアカウントを切り替えることになったのか 最初はPCのログインや様々なアプリ、サイトへのログインに使うアカウントを統一したいという事から始まりました。 OneLoginやAzureAD等が候補に上がり、AzureADの方はPCの管理も同時に行えるIntune等も使えば色々と出来るなと思い検証を行っていたのですが、ちょうどその頃にG-suiteがサービ

    PCへのログインアカウントをGoogleに変更した話 - MicroAd Developers Blog
    k_osawa
    k_osawa 2022/04/04