並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 67件

新着順 人気順

MicroAdの検索結果1 - 40 件 / 67件

  • 「関数型言語をもっと使いこなしたい!」マイクロアドの新卒エンジニアがデータサイエンティストの先輩に圏論の初歩を指導してもらった話 - MicroAd Developers Blog

    はじめに こんにちは、19新卒バックエンドエンジニアの飛田です。 弊社では、プロダクトの一部にCatsという関数型プログラミングを行うためのライブラリを導入しており、今後、Catsをより多くのプロダクトに使用していく予定です。 Catsにはモナドやファンクタという概念が登場しますが、これらの概念は圏論に由来しています。圏論を勉強することで、Catsで登場する諸概念をより深く理解することができると考え、今回、圏論の初歩の内容を自分でまとめてみることにしました。 なお、マイクロアドの優秀なデータサイエンティストであり、数学や物理に大変に詳しいT先輩(アイコンがおふとん)にレビューを依頼することにしました。 slackのアイコンがおふとんのT先輩 レビューをしてもらった結果 まとめた内容の初稿をT先輩にレビューをしていただいたところ、以下の通りものすごい量のツッコミを食らってしまいました。 レビ

      「関数型言語をもっと使いこなしたい!」マイクロアドの新卒エンジニアがデータサイエンティストの先輩に圏論の初歩を指導してもらった話 - MicroAd Developers Blog
    • 新卒がMLOpsに挑戦していく話 - MicroAd Developers Blog

      システム開発本部のデータサイエンスユニットに所属している19新卒の豊原です。 巷で結構耳にするMLOpsですが、結構苦労していらっしゃる組織も多いと考えます。 今回の記事では、マイクロアドで挑戦するMLOpsについての概要と、その挑戦について解説します。 機械学習システムが抱える根本的な問題 私たちの思うMLOpsとは CEという概念 レコメンドシステムが抱える根本的な性質 マイクロアドが作るシステムの現状 MLOpsで実現すること 技術的詳細 Airflowを用いて学習を同時並行で回す MLflowを用いて学習結果を保存する 機械学習エンジニア絶賛採用中 機械学習システムを構築する上で、他の通常のシステムと決定的に違うことがあります。 それはシステムの劣化の早さ*1と問題調査という点にあります。 機械学習システムが抱える根本的な問題 機械学習システムが抱える根本的な性質として、データを基

        新卒がMLOpsに挑戦していく話 - MicroAd Developers Blog
      • Goのポインタ渡しは値渡しよりパフォーマンスが良いという誤解 - Qiita

        この記事は MicroAd Advent Calendar 2022 の12日目の記事です。 「Goのポインタは8バイトだから、ちょっとした構造体を値渡しでコピーするよりポインタで渡した方が早くなる」 長らくそう思い込んでいたのですが、以下の記事でポインタ渡しには意外なデメリットが多いことを知り、誤解だと気づきました。 この記事では自分なりにポインタのデメリットをまとめつつ、ポインタ渡しで本当に良いのかを確認すべきパターンを紹介しようと思います。 ポインタが実は高価な理由 ポインタが指す値にアクセスする際にnilかどうかのチェックが必ず入る ポインタがnilの場合、Goはpanic()をおこす必要があるため ポインタは動的メモリアロケーションの原因になりがち ポインタが指す値はヒープ領域に置かれがち(絶対ではないけど一般的に多い) ヒープ領域は確保にまとまったメモリの検索、解放にGCが必要

          Goのポインタ渡しは値渡しよりパフォーマンスが良いという誤解 - Qiita
        • Google Compute Engine を用いた機械学習モデル学習バッチのスケジュール実行 - MicroAd Developers Blog

          こんにちは、機械学習エンジニアの河本 (@nnkkmto) です。マイクロアドのシステムにおいて、機械学習が必要な部分の研究開発及び実装を担当しています。 この記事では GCP (Google Cloud Platform)、特に GCE (Google Compute Engine) を用いた機械学習モデル学習バッチのスケジュール実行について紹介できればと思います。 はじめに 前提 全体の流れ 各処理の詳細 スケジューリング Cloud Scheduler Cloud Pub/Sub Cloud Functions インスタンス起動による学習バッチの実行 preempted 時のリトライ処理 終わりに はじめに 現在マイクロアドでは、以下にあるようにGCP を用いた機械学習基盤の構築を進めていて、Kubeflow を用いた実行環境へ移行予定です。 オンプレ×Google Cloud Pl

            Google Compute Engine を用いた機械学習モデル学習バッチのスケジュール実行 - MicroAd Developers Blog
          • Vue.jsを使ってメンテナンスツールを作ってみた - MicroAd Developers Blog

            ご無沙汰しております。 マイクロアドでアプリケーションエンジニアをしているNです。 約1年前「JavaScriptフレームワーク(Vue.js)を導入して」というタイトルでブログを執筆させていただきました。 その時、 興味を示して頂き何らかの反応をいただければ、きっと別の社員がもう一歩踏み込んだVue.jsのお話を書いてくれるんじゃないかと期待しています。 と書いたっきり誰も続いてくれなかったので1年越しではありますが、責任持ってアプリケーションエンジニアの N 動きます。 社内メンテナンスツールをつくってみた 最近WEB開発してないんです。 実は去年の4月ころからだいたいバッチしか作らないチームのリーダーにさせていただきまして、それからずっと趣味以外でWEB開発をしてません。 (実は前回のブログを書いた時にはもう。。。) でもWEB開発したい!JS書きたい。。。 そうだ!バッチのメンテナ

              Vue.jsを使ってメンテナンスツールを作ってみた - 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
              • CTR予測における確率補正について - MicroAd Developers Blog

                はじめに こんにちは. マイクロアドで機械学習エンジニアをしている福島です. 主に広告のClick Through Rate (CTR)予測やReal-Time-Bidding (RTB)の入札最適化を担当しています. 今回はマイクロアドでのCTR予測における確率補正について紹介したいと思います. はじめに CTR予測とは 問題1 学習データが不均衡 問題2 機械学習モデルの出力を確率として扱うのは不適切な場合がある 問題3 学習データの信頼度が高くない CTR予測における確率補正 アンダーサンプリングによって生じたバイアスの除去 Isotonic Regressionによる確率補正 確率補正の効果検証 終わりに CTR予測とは RTBでは下図のように, 広告主とメディア間でリアルタイムにオークションが開催され, オークションに勝利した広告がメディアに表示されます. マイクロアドでは現在オ

                  CTR予測における確率補正について - MicroAd Developers Blog
                • Jestを使ったVueコンポーネントのテストを導入した話 - MicroAd Developers Blog

                  はじめまして、フロントエンドエンジニアをしている川上です。 業務では、主にサービス要件に沿ったフロントエンド開発を担当しています。 今回は、私自身初めての経験だったフロントエンドのテスト導入手順や、 導入するにあたって気をつけた点などをお話しできればと思います。 はじめに Vueコンポーネントのテストについて Jestの導入について Jestを利用したテスト おわりに はじめに マイクロアドには様々なプロダクトがありますが、私の担当しているUNIVERSEというプロダクトについては、 フロントエンドフレームワークにVue.jsを利用しています。 jp.vuejs.org テストの導入を行うにあたって、今後、現在利用しているVue2をVue3へ移行していくことを考えると*1 TypeScript*2でテストを書いていくのがいいということになりました。 また、TypeScriptのメリットでも

                    Jestを使ったVueコンポーネントのテストを導入した話 - MicroAd Developers Blog
                  • 効率的なダッシュボードの作成 - MicroAd Developers Blog

                    京都研究所・TechLabの田中です。 マイクロアドでは、主にエンジニア以外のメンバーが広告配信実績などの各種データにアクセスする際にRedashを利用しています。 Redashから接続しているデータソースには、以前このブログでも紹介した分析用Hadoopクラスタ*1に加えて、MySQLのレプリやBigQueryなどがあります。 これらの異なるデータソースに対してRedashからは同じインターフェースでアクセスでき、手軽にデータの抽出や可視化・分析などが可能です。 また、クエリで抽出したデータを利用して、Redash上にダッシュボードを作成することもできます。 本稿では、そんなRedashの活用方法の1つとして、 スケジューリング機能とキャッシュ機能を利用した簡易的なデータパイプラインを使ってダッシュボードを作成する例をご紹介します。 なお、この記事で扱うRedashの説明はバージョンv1

                      効率的なダッシュボードの作成 - MicroAd Developers Blog
                    • redis threadedI/Oの検証 - MicroAd Developers Blog

                      はじめに マイクロアドでインフラエンジニアをしている柏木です。 マイクロアドでは広告配信に高速なKVSであるRedisを使用しています。 Redisはシングルスレッドでの高速性、安定性を売りにしていました。しかし6.0でマルチスレッド機能であるThreded I/Oが追加されました。 広告配信で多用している、Redisを高速化できるのであれば積極的に導入したいので検証を行いました。 はじめに Threded I/Oとは シングルスレッドでのRedisの処理 マルチスレッドでのRedisの処理 io-threads io-threads-do-reads + io-threads 検証環境 OSの追加設定 今回の検証結果 前提条件 指標の取得方法について loopbackアドレスを利用した検証 実行CPUの指定 Redisの起動コマンド Redisのconfigについて 暖機運転 検証1:I

                        redis threadedI/Oの検証 - MicroAd Developers Blog
                      • Vue 3 に向けて Composition API を導入した話 - MicroAd Developers Blog

                        システム開発本部アプリケーションエンジニアの Edy です。 マイクロアドの WEB アプリケーションのフロントエンドは、大半を Vue.js を用いて開発しています。 その Vue.js ですが、「Vue 3 is now in RC! (Vue 3 is now in RC! · Issue #189 · vuejs/rfcs · GitHub)」が公開され、version 3 ( Vue 3 ) が盛り上がりを見せています。 今回は、Vue 2 から 3 へ移行する理由と、 2 から 3 へ version up するために行なっている Composition API の導入 についてお話していこうと思います。 そもそも Vue.js とは ? SFC TypeScript Vue 2 の限界 大規模なプロジェクトになるほど開発効率が落ちる ロジックの再利用にかかるコストが大きい 単

                          Vue 3 に向けて Composition API を導入した話 - MicroAd Developers Blog
                        • 新卒2年目のエンジニアがモノイドの数学的な定義について調べてScalaで実装してみた - MicroAd Developers Blog

                          はじめに モノイド 代数学 圏論 Scalaでモノイドを実装する 代数学的な定義に従った整数を加算するモノイドの実装 圏論的な定義に従った整数を加算するモノイドの実装 モノイドの合成 Catsによるモノイドの利用例 おわりに はじめに こんにちは。マイクロアドでソフトウェアエンジニアをしている飛田と申します。私は主に UNIVERSE Ads というプロダクトの開発に携わっています。 UNIVERSE Ads では、より関数型ライクな設計や実装を取り入れることにより、高い保守性を目指しています。 この記事では、関数型プログラミングの入門的な話として、モノイドについて調べてみたので、この記事で共有させていただきたいと思います。 モノイドについてより深い理解をするために、まず、圏論と絡めたモノイドの説明をしたいと思います。 そしてその次に、より理解を深めるために、Scala のサンプルコードを

                            新卒2年目のエンジニアがモノイドの数学的な定義について調べてScalaで実装してみた - MicroAd Developers Blog
                          • Wikipediaを活用した表記ゆれへの対応 - sola

                            自然言語処理のタスクにおいて、表記ゆれの問題が常につきまといます。単純なパターンであれば単純なルールで対処が可能です。例えばアルファベットの大文字・小文字の混在であれば全て小文字に変換すれば良いし、半角文字と全角文字の混在であれば全て全角文字に変換すれば良いでしょう。 しかし、略語はどうでしょうか。例えばPCはおそらくパソコンのことですね。ただ、かしこまった文書だとパーソナルコンピュータと表記されているかもしれません。こうなってくると、単純なルールでの対処はもう難しいでしょう。 そこで、単語の正規化(名寄せ)が必要です。単語の正規化の話は、Sansanの発表資料に良くまとまっています。大きく分けて以下の方法が考えられます。 単語マスタを用意しておき、入力単語に対してレーベンシュタイン距離(編集距離)を計算して最も距離が小さい単語を採用する 方法としては単純で扱いやすい マスタの用意が必要

                            • データ指向アプリケーションデザインを読んでLSM-treeインデックスに基づくKVSを作る - 油そば

                              この記事はMicroAd Advent Calendar 2019の4日目の記事です。 qiita.com はじめに どういうKVSを作るか 手始めにログベースのKVS 書き込み, 読み取り, 削除 ログフォーマットの決定 実装 LSM-treeインデックスを持つKVSを実装する 書き込み MemTableからSSTableの生成 SSTableの反映 SSTableのマージとコンパクション バッファを使ったマージ&コンパクション ステップ1. SSTable毎にキーを読み出す ステップ2. バッファ内の最小のキーの最新の値を読み出す 再起動時の復元 アクターで組み立てる 書き込みのケース 読み取りのケース コード はじめに データ指向アプリケーションデザインは今年買って読んだ技術書の中で最も読み応えがあった本でした。 www.oreilly.co.jp 単に周回で読むだけでも学びが多い本

                                データ指向アプリケーションデザインを読んでLSM-treeインデックスに基づくKVSを作る - 油そば
                              • リモートワークでDiscordを導入しました - MicroAd Developers Blog

                                追記:この記事がきっかけで活用事例として本に紹介されました。詳しくは以下をご覧ください。 developers.microad.co.jp マイクロアドのサーバサイドエンジニアでチームリーダーを担当している松宮です。 マイクロアドは先月まで全社員フルリモートで、現在はリモートワークを取り入れた新しい働き方を模索している段階です。 リモートワークにおけるコミュニケーションは大きな課題であり、いくつかの試行錯誤がありました。現在はタイトルにもあるように音声・ビデオ通話ソフト「Discord」を導入することで、コミュニケーションの改善をはかっています。 今回は、Discordを導入して、どのようにコミュニケーションを改善したかをご紹介したいと思います。 Discordとは そもそもDiscordとは、無料で利用できるゲーマー向けの音声・ビデオ通話ソフトです。クラウド上にサーバをホスティングし、ユ

                                  リモートワークでDiscordを導入しました - MicroAd Developers Blog
                                • CDH (Hadoop) 入門 - MicroAd Developers Blog

                                  はじめに 初めまして。マイクロアド21年新卒インフラ担当の森( id:bosq )と申します。 7月に新卒研修を終えてからは、基盤開発グループにて日々勉強しています。 配属後は新しいことのインプットが多いため、今回は学んだことの整理とアウトプットを兼ねて、マイクロアドのデータ基盤で利用しているHadoopについて紹介したいと思います。 はじめに 分散処理基盤 Hadoop / CDH とは Hadoop エコシステム データストレージ (HDFS) と リソース管理 (YARN) HDFS (Hadoop Distributed File System) YARN (Yet Another Resource Negotiator) ノードの役割 分散処理エンジン (MapReduce, Tez, Spark) MapReduce Apache Tez Apache Spark クエリエンジ

                                    CDH (Hadoop) 入門 - MicroAd Developers Blog
                                  • AI Platform Pipelines の機械学習基盤への導入 - MicroAd Developers Blog

                                    こんにちは、マイクロアド機械学習エンジニアチームの河本(@nnkkmto)です。今回、モデル学習における課題解決に向けて GCP における機械学習基盤に AI Platform Pipelines (Kubeflow Pipelines) を導入しました。今回はその内容について紹介します。 従来の方法 抱えていた課題 手段:AI Platform Pipelines 導入時の方向性 導入内容 実行処理 CI / CD 終わりに 参考 従来の方法 マイクロアドでは学習実行基盤として GCP (Google Cloud Platform) を採用しています。 定期的な学習が必要な推論モデルは、 AI Platform Training の単一の job として学習処理の含まれるイメージを cron 実行することで行っていました。 デプロイ・実行をまとめると以下のような構成になっています。 抱え

                                      AI Platform Pipelines の機械学習基盤への導入 - MicroAd Developers Blog
                                    • BeanValidationを用いるフォームクラスをテストする - MicroAd Developers Blog

                                      アプリケーションエンジニア1年目の宮田です。 今回は以下のようなBeanValidationを用いるフォームクラスのテストについて、用いる道具と実際のテストにおけるTipsの2点からまとめます。 import lombok.Getter; import lombok.Setter; import org.hibernate.validator.constraints.URL; import javax.validation.Valid; import javax.validation.constraints.AssertTrue; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; @Getter @Setter public class MyForm { @NotNu

                                        BeanValidationを用いるフォームクラスをテストする - MicroAd Developers Blog
                                      • Builderscon2019の参加レポート - MicroAd Developers Blog

                                        こんにちは、まっつーです。 Builderscon2019が終わって早1ヶ月が経とうとしていますが、builderscon2019の2日目に参加してきたのでそのレポートを書きたいと思います! ↓ マイクロアドのエンジニア達です。スポンサー特典で招待枠をもらったので参加させてもらいました! 目次 Open SKT: メルペイ開発の裏側 CN Buildpacksが作る未来 非同期処理の歴史から見たコンピューティングの進化 ウォレットアプリ「Kyash」の先 〜「Kyash Direct」のアーキテクチャ〜 まとめ Open SKT: メルペイ開発の裏側 speakerdeck.com 1本目は株式会社メルペイ Masahiro Sanoさんの発表を聞きました。 「Open SKT: メルペイ開発の裏側」ということで、幅広いテーマを取り上げて、タイトル通り開発の裏側を紹介されていました。 金融

                                          Builderscon2019の参加レポート - MicroAd Developers Blog
                                        • Digdagバッチの基本設計とビルドの実例紹介 - MicroAd Developers Blog

                                          サーバサイドエンジニアの大澤です。主にETL処理のバッチ開発を行っています。 以前の記事で紹介していますが、マイクロアドではバッチ処理のワークフローを主にDigdagを使用して管理しています。 今回は、Digdagを1年以上使ってきてたどり着いた構成について紹介したいと思います。 Digdagバッチ CI/CDの構成 GitHub Enterprise上のバッチを管理しているリポジトリの変化に応じてJenkinsがビルド、テスト、コードチェック、デプロイまで行うようになっています。 バッチはDigdagとDockerを使用して動作するように作っているので、DockerレジストリとDigdagサーバに成果物を登録します。 成果物は対象のブランチに応じて行き先が変化し、masterブランチの変更の場合本番用の環境へ、その他の場合開発用の環境にデプロイされます。 CIの内容はリポジトリ内のJen

                                            Digdagバッチの基本設計とビルドの実例紹介 - MicroAd Developers Blog
                                          • ベアメタルで実現するSpark&Trino on K8sなデータ基盤

                                            Trino Conference Tokyo 2023 https://techplay.jp/event/907388 #trinodbRead less

                                              ベアメタルで実現するSpark&Trino on K8sなデータ基盤
                                            • Chrome84(beta)におけるUser-Agent Client Hintsの調査 - MicroAd Developers Blog

                                              Chrome84(beta)におけるUser-Agent Client Hintsの調査 はじめまして。Tech Labの郭です。 Tech Labは弊社の開発効率・運用効率・技術レベルの向上を目的として、業界最新かつ有効な技術を研究・導入するチームです。 今回はブラウザ界隈の最新仕様、User-Agent Client Hints(以下UA-CH)の調査結果を少し共有したいと思います。 UA-CHは Client Hintsの拡張で、仕様自体1はまだ提案中のため、確定していません。 この調査結果は、2020/6/16時点 Chrome84(beta)での検証結果となります。 調査経緯 今年の1/14に現在UA-CHの策定者の1人、GoogleのYoav Weiss氏から一通のGroupメール、「段階的にUser-Agent文字列を非推奨と凍結にする2」の中で、2020中に段階的にUser

                                                Chrome84(beta)におけるUser-Agent Client Hintsの調査 - MicroAd Developers Blog
                                              • 京都のIT系学生コミュニティ CAMPHOR- さんとイベントを共催しました - MicroAd Developers Blog

                                                こんにちは、まっつーです。10/5(土)に京都のIT系学生コミュニティ CAMPHOR-さんと「ネット広告を支える技術を知る」のテーマでイベントを共催させて頂きました。 マイクロアドのエンジニア3人で登壇して参りましたので、その時の様子や発表内容をご紹介したいと思います。 はじめに 今年の2月頃にCAMPHOR-さんにお声掛けして、イベント開催の提案をさせて頂きました。マイクロアドとしてはアドテクの面白さをもっと知ってもらいたい想いと、学生さんとコミュニケーションが取れる場になればと考えておりました。 そういった意図をお話させてもらい、CAMPHOR-さんから無事ご快諾頂くことが出来まして、開催の運びとなりました。 当日はCAMPHOR-さん提供のCAMPHOR- HOUSEにお邪魔しました。会場内は少し暗めな照明と温もりのある畳も相まって、集中出来そうな空間でした。学生時代に知っていれば

                                                  京都のIT系学生コミュニティ CAMPHOR- さんとイベントを共催しました - MicroAd Developers Blog
                                                • Scala、DDD、Akkaで立ち向かう 〜広告配信システムに課せられた100msの制約〜

                                                  「Scala、DDD、Akkaで立ち向かう 〜広告配信システムに課せられた100msの制約〜」 2019/10/05 【マイクロアド】〜ネット広告を支える技術を知る〜 #microad_CAMPHOR https://camphor.connpass.com/event/146724/Read less

                                                    Scala、DDD、Akkaで立ち向かう 〜広告配信システムに課せられた100msの制約〜
                                                  • 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
                                                    • 【クリック報酬型広告一覧まとめ】出来事は突然やってくる⚡PV数アップを狙いすぎてアドセンス停止に注意しよう🚥禁断のクリックジャッキング手法も紹介👿 - 214万PV

                                                      「 ドドスコスコスコ🍶 ドドスコスコスコ🍺 ドドスコスコスコ🍷 ラブ注入💖 」 ...それは電車に乗っている時、 大音量で突然に流れた。 ボクのケータイから。 焦った、、、 電車で大音量で 何か音が流れるだけでも マナーが悪いのに。 前方に座っている、 おじさんはものすごく怪訝な眼差しで ボクの顔を見てる。 まさか、、、 楽しんごのドドスコスコスコLOVE注入が流れるなんて。 (しかも、楽しんごが好きでも何でもない) 二重でマナーが悪い。 スマホがポケットの中で 勝手にYouTubeを開いて まさかの、楽しんごチョイス。 と、、 突然過ぎて対応出来ませんわ そう本日は 物事は何でも突然、前触れなく起きるということ。 ジャニーズや吉本興業のニュースが世間を賑わせていますが・・・、 衝撃的なニュースがブログ界隈でもありました。 本日はそんなお話 内容から先に言うと・・・ 🌟PV数アッ

                                                        【クリック報酬型広告一覧まとめ】出来事は突然やってくる⚡PV数アップを狙いすぎてアドセンス停止に注意しよう🚥禁断のクリックジャッキング手法も紹介👿 - 214万PV
                                                      • 19年度新卒チームが研修でMVP投票システムを作った話 - MicroAd Developers Blog

                                                        ぼーちゃんトップページ マイクロアドの19新卒グループです。 全体研修が終わり、システム開発部の研修として「ぼーちゃん」という月間インセンティブ獲得者を決める、MVP投票システムの開発を行いました。 今回は、その概要と開発時に工夫した点をまとめて記事にします。 昨年度:マイクロアドの新卒4人が研修で社内システムを開発した話 はこちら 19新卒メンバー 目次 ぼーちゃん?自己組織化?MVP投票制度の存在 まずはじめに 設計 DB 状態遷移 技術 フロントエンド サーバーサイド 今後の展開 社内システムをリリースしてみて ぼーちゃん?自己組織化?MVP投票制度の存在 MVP投票制度とは「自己組織化」を掲げる当部署において、 マネージメントの分散の点からインセンティブ獲得者(MVP)を広くみんなで決める必要がある という考えから生まれた制度です。 これにより現場の納得感が得られ、チーム間での情報

                                                          19年度新卒チームが研修でMVP投票システムを作った話 - MicroAd Developers Blog
                                                        • Moleculeのdelegatedドライバ + OpenStackでAnsibleのテストを行う - MicroAd Developers Blog

                                                          インフラエンジニアの長田です。 今回は、Ansibleのテスト支援ツールであるMoleculeの実践例について記事にしたいと思います。MoleculeはDockerやPodmanでコンテナを起動し、その中でAnsibleロールのテストを簡潔に行うことができる便利なツールですが、Ansibleで実行したいロールの中にはgrub2のようなブートローダのコンフィグやカーネルパラメータの変更、ネットワーク機器の操作など、コンテナ上でのテストが困難であるケースも存在します。そこで、Moleculeのdelegatedドライバを用いてOpenStack上にインスタンスを構築し、これらのテストを実現したいと思います。 以下、各ツールのバージョンについて、Ansibleは 2.9.9 を、Moleculeは 3.0.4 を前提としています。 OpenStackインスタンスの作成・削除 Moleculeのd

                                                            Moleculeのdelegatedドライバ + OpenStackでAnsibleのテストを行う - MicroAd Developers Blog
                                                          • Focal Lossによる自信過剰な予測の抑制 - MicroAd Developers Blog

                                                            はじめに こんにちは. マイクロアドで機械学習エンジニアをしている福島です. 主にReal-Time-Bidding (RTB)におけるClick Through Rate/Conversion Rate(CTR/CVR)予測や入札最適化の研究・開発を担当しています. 今回はCTR/CVR予測の学習にFocal Loss [Tsung-Yi Lin et al., 2017]と呼ばれる損失関数を使ってみたのでその結果を紹介したいと思います. はじめに Focal Lossとは CTR/CVR予測にFocal Lossを用いることのモチベーション Focal Lossによるcalibrationの改善 検証 LightGBMで自作の目的関数を用いる calibrationの評価指標 実験 まとめ Focal Lossとは 一般的にCTR/CVR予測は学習データ中でclick/conversi

                                                              Focal Lossによる自信過剰な予測の抑制 - MicroAd Developers Blog
                                                            • Scala With Cats を読む前に知っておきたかったこと - MicroAd Developers Blog

                                                              はじめに こんにちは。マイクロアドでソフトウェアエンジニアをしている田口と申します。 私が所属しているチームでは COMPASS というプロダクトに関する開発をメインで行っており、広告配信システム(Scala)、管理画面(Kotlin・Java)、バッチ系(Digdag(Python)・Spark Streaming(Scala)) ...etc など幅広い分野を担当しています。 担当しているプロダクトの中で広告配信システム(Scala)は、2014年に初期実装され現在(2021年)まで追加改修を継続的に行っているプロダクトになります。2019年の後半に「そろそろ刷新しよう」という声が上がり粛々と基盤固めを進めていましたが、他のプロダクトが落ち着いた今、ようやくチーム一丸となって広告配信システムのリプレイスに取り掛かり始めています。 今回のリプレイスでは Scala の関数型ライブラリであ

                                                                Scala With Cats を読む前に知っておきたかったこと - MicroAd Developers Blog
                                                              • Cookieレス広告技術FLEDGEを試す - MicroAd Developers Blog

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

                                                                  Cookieレス広告技術FLEDGEを試す - MicroAd Developers Blog
                                                                • KotlinフレンドリーなBeanPropertyRowMapper的なものを作った - MicroAd Developers Blog

                                                                  アプリケーションエンジニアの宮田です。 自分のチームでは、10月から既存のSpringBootプロジェクトへKotlinの導入を進めています。 今回は、そんな中で直面した課題への対策として、「KotlinフレンドリーなBeanPropertyRowMapper的なもの」を作った件についてまとめます。 BeanPropertyRowMapperとは まずはじめに、RowMapperインターフェースと、その実装の1つであるBeanPropertyRowMapperについて説明します。 RowMapperとは、JdbcTemplate::query等の処理を実行した際に、DBから取得した結果とJavaのオブジェクトとを紐づける機能のインターフェースです。 RowMapperを手動で書いた場合、以下のようになります。 ResultSetからカラム名と対応する型でそれぞれ取得を行い、SampleCl

                                                                    KotlinフレンドリーなBeanPropertyRowMapper的なものを作った - MicroAd Developers Blog
                                                                  • MAASを導入した話 - MicroAd Developers Blog

                                                                    こんにちは。マイクロアドでインフラエンジニアをしているハダです。 2回目にして久々のブログ執筆です。 今回の記事では、マイクロアドで利用を始めたCanonical社のMAASについて記事を書いていきたいと思います。 インストール方法や使い方などの詳細については公式ドキュメントを読んだほうが確実ですのでこの記事の中で触れていません。 背景 マイクロアドではPXE bootとkickstartを利用したOSインストールを、長年利用しています。 現在もその仕組は現役なのですが、今回はデータセンターの移設に伴ってMAASの導入を進めていくことになりました。 マイクロアドでの課題 マイクロアドではPXE BootとkickstartによるOSの自動インストールを行ってきました。 過去から引き継ぎ、より使いやすいようにしてきましたが以下のような課題も出てきました。 PXE Bootを利用したインストー

                                                                      MAASを導入した話 - MicroAd Developers Blog
                                                                    • より使いやすいデータ分析基盤にするために - MicroAd Developers Blog

                                                                      京都研究所・TechLabの田中です。 今回は、データ分析基盤をより使いやすくするために実施した取り組みをご紹介します。 この記事では、結論だけでなくそこに至るまでの過程も一緒に紹介しているので、実務の雰囲気の一端も感じ取っていただければ幸いです。 1.ことの始まり 2.状況の整理 2-1 Hive on MR 2-2 Complex型のカラムに対する pushdown が機能しない 3.対策を考える 3-1 Hive on MR 以外の選択肢 3-2 ネストしたカラムへのpushdown 3-3 必要なアクションは? 4.つまづきポイント 4-1 HDFSファイルが圧縮できていない 4-2 そのDDLは無力 4-3 SETで指定するパラメータ 4-4 HDFSファイルの圧縮形式を確認 5.対策の効果 参考リンク 1.ことの始まり マイクロアドでは、すべてのデータを1つのHadoopクラス

                                                                        より使いやすいデータ分析基盤にするために - MicroAd Developers Blog
                                                                      • MySQL Shellのユーティリティをコマンドラインで実行する - MicroAd Developers Blog

                                                                        はじめに インフラエンジニアの長田です。今回は、MySQL Shellで提供されている種々の便利な機能をコマンドラインで実行する方法について紹介したいと思います。 MySQL Shellとは MySQL Shellは、公式に提供されている新しいMySQLのコマンドラインクライアントで、従来の mysql クライアントと同様にSQLによるデータベースの操作に加え、JavaScriptまたはPythonによる操作を行うためのMySQL Shell APIを備えています。 その中の一つである util グローバルオブジェクトには、これまでのバージョンアップにより、並列スレッドで実行する高速なダンプ・リストア、テーブルデータのインポート・エクスポートなどといった便利な機能が追加されています。 MySQL ShellはWindows、Linux、macOS向けに提供されています。 dev.mysql

                                                                          MySQL Shellのユーティリティをコマンドラインで実行する - MicroAd Developers Blog
                                                                        • 最強のPython型チェッカーmypy - MicroAd Developers Blog

                                                                          はじめまして!今年マイクロアドに入社してサーバーサイドエンジニアとしてバッチ開発を担当している根本( id:realyutanemoto )といいます! 今回は、マイクロアドのバッチ開発で利用している静的コード解析ツールのmypyについてのご紹介です。 はじめに バッチ開発で使っているリンター・フォーマッターなど yapf mypy flake8 最強の型チェッカーmypy mypyで型チェックしよう 最近のmypy オプションの追加 エラーコードの有効化/非有効化 特定のファイル/ディレクトリをビルドから除外 スタブパッケージの自動インストール 確認不要のスタブパッケージの自動インストール Pythonのサポート対象バージョンの変更 stdlibのモジュール以外に対してのスタブをmypyが提供しなくなる メソッドや変数の型範囲を狭めやすくなった type(x) を用いた型範囲の決定 Ty

                                                                            最強のPython型チェッカーmypy - MicroAd Developers Blog
                                                                          • RTBにおける落札額・落札確率予測 - MicroAd Developers Blog

                                                                            はじめに こんにちは、機械学習エンジニアの大庭です。昨年の4月に新卒でマイクロアドに入社し、現在はUNIVERSE Adsというプロダクトで入札アルゴリズムの研究開発および実装を担当させていただいてます。 この記事では、僕が現在検証している機械学習による落札予測タスクについてご紹介していこうと思います。皆さんにマイクロアドの事業内容を理解していただく助けとなれば幸いです。 はじめに RTBと入札額決定 落札予測とは? 入札額の最適化 入札額の安定化 落札予測の課題 出力が確率分布 右側打ち切り問題 実装 DeepHitモデル 入札額・落札額のビニング 損失関数 精度検証 ビニングによる落札額分布の変化 落札確率予測 落札額予測 おわりに RTBと入札額決定 Real-Time Bidding(RTB)では下図のように、広告主とメディア間でリアルタイムにオークションが開催され、オークションに

                                                                              RTBにおける落札額・落札確率予測 - MicroAd Developers Blog
                                                                            • 圏論初心者が関手に入門し、Scalaで実装した話 - MicroAd Developers Blog

                                                                              はじめに こんにちは。マイクロアドでソフトウェアエンジニアをしている飛田と申します。私は主に UNIVERSE Ads というプロダクトの開発に携わっています。 UNIVERSE Ads では、より関数型ライクな設計や実装を取り入れることにより、高い保守性と効率性を目指しています。 過去の記事では、圏やモノイドについて書きましたが、今回の記事では「関手」について共有させていただきたいと思います。 過去の記事: 「関数型言語をもっと使いこなしたい!」マイクロアドの新卒エンジニアがデータサイエンティストの先輩に圏論の初歩を指導してもらった話 - MicroAd Developers Blog 新卒2年目のエンジニアがモノイドの数学的な定義について調べてScalaで実装してみた - MicroAd Developers Blog 以降、関手について説明しますが、数学用語としてそれについて言及する

                                                                                圏論初心者が関手に入門し、Scalaで実装した話 - MicroAd Developers Blog
                                                                              • SSPリニューアルの新規参入者向けチュートリアルを作って内定者アルバイトが爆速で即戦力になる予定の話 - MicroAd Developers Blog

                                                                                はじめに システム開発本部アプリケーションエンジニアの新卒1年目の輿水です。 前提としてマイクロアドのCOMPASSというSSPのプロダクトをScala、Catsを用いてDDDの戦術的戦略を取り入れてリニューアルすることになりました。 Scala、Cats、DDDを初めて学習する人にとっては参入障壁があまりにも高すぎるのですが、その障壁をすこしでも下げて、メンバーに即戦力になってもらうためにチュートリアルを作成しました。 この記事では、実際に内定者アルバイトのS君に研修としてやってもらった時の所感を話していこうと思います! COMPASSとは MicroAd COMPASSはメディアの広告配信の最適化と、包括的な管理を行うことで広告収益を最大化する次世代のサプライサイドプラットフォーム(SSP)です。 https://www.microad.co.jp/services/adplatfor

                                                                                  SSPリニューアルの新規参入者向けチュートリアルを作って内定者アルバイトが爆速で即戦力になる予定の話 - MicroAd Developers Blog
                                                                                • アラートメールのslack通知の話 - MicroAd Developers Blog

                                                                                  マイクロアドでアプリケーションエンジニアをしているタカギです。 バッチ開発がメインのチーム(第4開発ユニット:通称ゆーよん)に所属しています。 バッチといえば避けては通れないのが、アラート対応ですね。 そういうわけで、今回の記事では、アラートメールのslack通知について記事を書いていきたいと思います。 背景 マイクロアドでは、非常に多くのバッチ処理が走っています。バッチスケジューラとしては、最近はDigdagが主流ですが、一部にはJenkins、Rundeckなどから実行されるバッチも存在します。また、監視ツール系のバッチはcrontabで動いていたりもします。 大抵の場合、アラートメールはメーリングリスト宛に送信され、所属しているメンバーの会社の個人メールアドレスに届く事が多いと思います。 個人のメールボックスには、アラートメール以外にも多くのメールが届いているはずなので、必然的にアラ

                                                                                    アラートメールのslack通知の話 - MicroAd Developers Blog