サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Pixel 9
yebisupress.dac.co.jp
はじめに みなさんこんにちは、プロダクト開発本部の亀梨です。 普段はXmediaOneというメディアプランニング・広告運用管理・トラッキング・マーケティング分析を行う 統合プラットフォームの開発を担当しています。 テスト自動化の背景 わたくしが担当するXmediaOneでは品質担保のために①コードベース(ScalaTest)の単体テスト②人力での端末操作の単体テスト・シナリオテストを行っていますが、高い品質を維持しようとすると②の工数・負荷が高くなり日々の業務を圧迫しています。 そこで、Seleniumを使ってテスト自動化することで工数削減→さらなる品質強化のためにテストカバレッジ向上をしていこうということになりました。 今回はSelenium導入にあたっての環境構築の手順を紹介したいと思います。 PCはMacでPHPプリインストール済みであることを前提としています。 環境構築の手順 それ
はじめに みなさんこんにちは、プロダクト開発本部の亀梨です。 普段はXmediaOneというメディアプランニング・広告運用管理・トラッキング・マーケティング分析を行う 統合プラットフォームの開発を担当しています。 背景 わたくしは最近プライベートで開発したWebサービスをインターネット上に公開しました。 その際にインフラ環境をどうやって構築しようかなーと思ったのですが、レンタルサーバーだとエンジニアとしてどうかなと思ったのと、AWSは普段の開発で触れているのとネット上に知見が貯まりまくっているのでつまらないなーと思ったので、今回は今まで触ったことのなかったGoogle Cloud Platform(GCP)を使って環境構築にトライすることに決めました。 非常に簡単に環境を構築することができたので、同じようにGCPやクラウド使ってみたいというビギナーの方向けにナレッジを共有できればと思い本記
はじめに みなさんこんにちは、プロダクト開発本部の亀梨です。 普段はXmediaOneというメディアプランニング・広告運用管理・トラッキング・マーケティング分析を行う 統合プラットフォームの開発・保守を担当しています。 エンジニアの皆さん、デザインってどうしてます? わたくしはプライベートでとあるWebサイト・Webシステムの開発を行っているのですが、 全体のデザイン・見栄えに関わる部分についてはサイトの性質上(あまり凝ったデザインを作る必要が無い)及びコストの都合上(実装時間の短縮化)、 Bootstrap3を使用してUIを実装しています。 Bootstrapを使うメリット Bootstrapを使用すると、 一定のデザイン品質を担保できる モバイルファースト(レスポンシブデザインに対応しPC, タブレット, スマートフォンのマルチデバイス表示に対応) 高速開発(デザインの実装を容易にする
はじめに みなさんこんにちは、プロダクト開発本部の亀梨です。 普段はXmediaOneというメディアプランニング・広告運用管理・トラッキング・マーケティング分析を行う 統合プラットフォームの開発を担当しています。 エンジニアの皆さん、SQLクライアント(GUIツール)って何使ってます? わたくしはこれまでデータベースの種類に応じて様々なSQLクライアント(全て無料)を使ってきました。 PostgreSql -> pgAdmin・Postico・PG Commander MySQL -> Sequel Pro Redis -> Medis といった感じです。PostgreSQLはPosticeをメインに使用しているのですが、無料版は接続先が9つと限られているので他のも併用しています。というわけで常時4つ程度のクライアントを使い分けているわけです。手間だし、面倒だし、PCにも優しくない。。。な
はじめに JavaScript がとりあえずそのまま動くので、雰囲気で使ってしまいがちな TypeScript。初心者向けに基本的なことをまとめてみました。 TypeScript って何? TypeScript はマイクロソフトが開発したプログラミング言語で、オープンソースでメンテナンスされています。分類としては altJS の一つ。JavaScript の不足している機能を改良した言語で、JavaScript に変換(コンパイル)して実行します。 CoffeeScript と何が違うの? altJS といわれる言語には TypeScript のほかにも Ruby on Rails で使われている CoffeeScript などがあります。CoffeeScript とは何が違うのか、同じ処理を JavaScript(ECMAScript 5)、CoffeeScript、TypeScript
はじめに みなさんこんにちは、プロダクト開発本部の亀梨です。 普段はXmediaOneというメディアプランニング・広告運用管理・トラッキング・マーケティング分析を行う 統合プラットフォームの開発を担当しています。 さて、皆さんはSSHポートフォワーディングするときにどんな方法で行っていますか? わたしはつい最近までターミナルに直接SSHコマンド
Androidには、UIに影響を与えないよういくつか非同期処理が用意されています。 今回は非同期処理の代表的な ・Service ・IntentService ・HandlerThread について違いを踏まえながらまとめます! 非同期処理について(http://codezine.jp/article/detail/9746) まずはServiceとIntentServiceについて説明します。 ■ Service ・メリット – Activityに依存せずに長時間のバックグラウンド処理に向いている。 – Contextを持っている。 ・デメリット – メインスレッド上(UIスレッド上)で動作するため、重い処理を行うと画面のレスポンスが遅くなったり、アプリが落ちる。 ※Serviceの優位性 ServiceはActivityと同一のスレッドで動いているため、 Serviceを使わずにAct
みんな使っている Chrome DevTools。 Web開発やトラブルシューティングには必須ですが、便利な機能を知らないで使っている人がいたり、Web で使い方を調べても古い情報だったりすることがあるので、部内で Chrome DevTools についての勉強会を開催しました。 ここでは、その中から10個とりあげてみます。 Chrome DevTools の画面の開き方など基本的なことには触れないので 参考情報 を見てください。 1. Cookieの表示・削除、JavaScript・Flashなどの有効・無効の切替 まずは DevTools を使わなくてもできることから。 Cookie を確認したり、noscript タグの表示を確認するのに、いちいち設定画面を開いていませんでしたか?(自分もそうでした…) URL の隣にある (i) や [保護された通信] をクリックすると出てくるメニ
本記事は2017年3月1日時点での情報です。正確かつ最新の情報は公式ドキュメントをご参照ください。 はじめに 秘密鍵,APIトークン,パスワードなどはたとえ社内公開・プライベートであってもGitリポジトリに含めたくない情報です。では,どのように管理すればよいでしょうか? 少し前の本ブログの記事 でもAWSのKey管理に 1.環境変数に設定する, 2. .aws/credentials にもたせておく, 3. コードに直接もたせる という3つの方法が提示されていました。しかし環境変数に設定する場合やGit管理していない外部ファイルで管理する場合,以下のような可能性があります。 バージョン管理されていないので変更に気づけない 誤って鍵を保存している環境変数やファイルを削除してしまう 開発者個人の環境に鍵が残ってしまう こうした問題に対応するためAudienceOne開発チームではAWS Key
プロジェクトチームのタスク管理ツールを Trello から Asana に変えることになり、 タスクの移行が意外と簡単にできた、というお話です。 Trello と Asana もともと使っていたのは Trello(トレロ)です。 プロジェクト > タスクグループ > タスク を、ボード > リスト > カード として管理します。 使いづらさを感じたのは、カードの階層管理ができない点でした。(カード > チェックリストはありますが) 一方 Asana(アサナ)は、ワークスペース(組織) > チーム > プロジェクト > タスク という管理です。 「セクション」でタスクグループが設定できたり、タスク内でサブタスクの追加できたり、と柔軟性があります。 さて移行作業 Trello は2ヵ月ほど使っており、60以上のカードがありました。 Asana に手動で登録し直すのは面倒、、と思ったところ、As
今回は、kubernetes上で同一コンテナを全ノードで動かす方法を紹介したいと思います。kubernetes自体の起動方法はここでは割愛します。 はじめに 以前、CoreOSのFleet上でmackerel-agentを動かすということを行いました。今回は、kubernetes上で同じようにクラスタ全ノードでコンテナを動かしたいと思います。 Pod kubernetesでのコンテナの管理は、Podといわれる幾つかのコンテナをグループ化したもの(Pod内に1コンテナでも良い)で管理します。このPodの単位で起動、停止などを行います。 Podの特徴はいくつかあり、例えばPod内のコンテナは同一ホストにデプロイされる(Pod単位でホストにデプロイされる)などがあります。 例えば以下のように記述します。例ではmackerel-agentを使っていますが、docker-dd-agentでもngin
概要 こんにちは、システム開発部の中村です。 今回は、Facebook Messenger APIを利用して、 画像をアップロードすると、似ているAKB48のメンバーを教えてくれるbotを実装しました。 尚、ディープラーニングやTensorFlowそのものの解説というより、 「エンジンとしてディープラーニングを活用したbotの実装方法」を主眼としている事をご承知おき下さい。 システム構成 Bot応答を行うサーバは諸般の都合によりGo、画像判別はPython(顔検出はOpenCV、分類用の畳込みニューラルネットワークはTensorFlow)で作成しています。 尚、言語間のI/FはgRPCでGoからPythonにRPCを行っています。 実装 Go側 Facebook MessengerからのWebhookを受信して、bot応答を行うWorkerプロセスです。 Messenger Bot Ser
こんにちは、FlexOne推進部の近江です。 私は新卒入社2年目でアドサーバーや動画ソリューション(OVP)のサポート、開発を担当しています。 今回は動画広告のプロトコル「VAST」について書かせて頂きます。 ここ数年動画のくるくる詐欺がありましたが、昨年はHulu、ユーチューバー、見逃し視聴、動画関連のワードが多くなり 本当の意味でついに動画元年を迎えたような気がします。 最近ではテレビでも動画広告が流れているくらい、マルチデバイスでシームレスに動画が配信されています。 さて、この動画広告配信の技術を支えているのは何でしょうか? はい、その答えがVASTになります。 ・VASTとは IABに記載されているVASTの定義は以下です。 Video Ad-Serving Template (VAST) ― a universal protocol for serving in-stream v
4月も後半にさしかかり、そろそろ新人研修を終え配属となった人もいるのではないでしょうか? エンジニアとして配属された方の中には、これまでプログラミング等に触れてこなかった初学者の方もいらっしゃると思います。 技術系の学習に役立つものとしては技術書や情報共有サイト、勉強会などなどたくさんありますが、新人としてはどれを使って学ぶべきか困ってしまうこともあるかと思います。 そこで、数年前まで新人だったDAC入社2〜4年目の若手エンジニアにこんなお題でアンケートを取ってみました。 「新人の頃に知っておきたかったと思う教材教えてください」 各エンジニアごとに、役立つと思う良教材とその教材に対するコメントを添えてまとめてみました! 新人の皆さんに限らずぜひご参考にしてください! 4年目 フロントエンドエンジニア 1. ドットインストール 動画でわかりやすく、解説者のテンポが良い。 何か新しい言語を覚え
アドテクエンジニア向けの問題を考えました。 お題は「広告表示」です。 以下お題に沿った「アドタグ」を作成し、広告を表示してみてください。 全部で9問あるので、興味のある人はやってみてください。 難易度は、ちょうどいいくらいです。 全部できた人は、採用担当までご連絡ください。 Q1.バナー広告を表示してみよう① [code lang=text] [request] ・ URL:http://ad-tech-study.com/display/q1 ・ method:GET [response] ・ document.write [/code] Q2.バナー広告を表示してみよう② [code lang=text] [request] ・ URL:http://ad-tech-study.com/display/q2 ・ method:GET [response] ・ json [/code]
Tableau 9.2から郵便番号地図が表示可能に 弊社ではデータ分析ツールのTableauを利用しています。オーディエンスデータの重複を分析したり、デモグラフィック属性を表示したりするなどデータの可視化に役立ちますTableauでは9.2から日本の郵便番号を用いて地図を可視化できるようになりました。現状では3桁までの郵便番号に対応してます。 郵便番号はCRM連携情報としてはもちろん、位置情報などからも変換可能ですし、郵便番号ごとのマーケティングデータや統計データの販売も多いため、比較的取り回しのしやすいセグメントです。そこで今回はTableau 9.2で郵便番号ごとの特性を地図で可視化してみることにしました テスト購買データの作成 表示対象を東京全域としてExcelを用いてランダムのテスト購買データを生成します。 現実にはCV時点でタグから連携したり、TSVファイルなどとしての連携するこ
どうも、開発部のクラヴマガです。 弊社サービスも最近はAWSの様なクラウド環境でサービスを構築することが多くなりました。 そこで問題になるのが、障害などによる深夜対応・・・。 データセンターに物理サーバをおいていた頃は、データセンターから障害発生時に 電話連絡をもらっていたのですが、クラウド環境では別会社に頼むか、社内で人員を確保するか・・・、 とはいえリソースも原価もかけられないし・・・と悩んでいました。 調べてみるとAPI経由で電話やSMSを送信できるサービス「twilio」というものがありました。 これなら人員確保や外部委託しなくても実現できるかも。 というわけでさっそく試しました。 最終的にはアラートメールをトリガにして、担当者に電話連絡⇒応答者がプッシュボタンで返答⇒SMSで誰が対応を開始したか一斉送信 を行うつもり。 まず今回は、「電話で連絡」と「SMSでメッセージ送信」をやっ
こんにちは。俺やで。 HyperLoglogについて書きます。おもしろいです。名前が。 ■1. HyperLoglogとは? count distinctを速くするアルゴリズム 以前、Minhashについて書きました。 (Treasure Dataさんのブログにも載せていただきました。ありがとうございます。) HivemallでMinhash!〜似てる記事を探し出そう。〜 Build a Simple Recommendation Engine with Hivemall and Minhash HyperLoglogもMinhash同様乱択アルゴリズムを応用したものです! ビッグデータのエンジニアとかデータアナリストであれば、count distinctする機会はめちゃめちゃあると思うのですが、「おせーよ。早く結果返せよ」と思うこともめちゃめちゃあるのでは。 なぜ遅いかと言うと正直にすべ
またまたTreasureDataネタです。 ただ、今回はクエリ系のネタではなく、GoogleAppsScriptとTreasureDataのREST APIを使ってTwitterのデータをTreasureDataに入れてみたので、その方法を紹介したいと思います。 はじめに ログデータだけではなく、公開されているAPIからデータを取得したり、クロールしたデータをTreasureDataに入れたいな、なんて思ったことはありませんか? (そういったニーズがある前提で話を進めます) そういった場合、1回だけデータを入れるのであれば、マニュアルで対応してしまえばいいですが、定期的にデータを取得したいとなると、サーバの準備をしなくてはいけなかったり、ちょっとめんどうです。 そんな課題に応えるべく、GoogleAppsScriptを使ってサーバレスにやってみました。 概要 GoogleAppsScirp
はじめに こんにちは。システム開発部の中村です。 社内で行っている『データ解析のための統計モデリング入門』(所謂緑本)の輪読会に参加した所、 大変わかりやすい本だったものの、Macユーザには悲しい事に実装サンプルがWinBUGSだったため、 9章の一般化線形モデルのベイズ推定によるアプローチをPython + STANで実装しました。 概要 ざっくりと、以下のステップに沿って実装しました。 1. 特定のパラメータに基いて確率分布からダミーデータを生成 2. 予測モデルを設定 3. ダミーデータと予測モデルから、データを生成したパラメータ(の事後分布)をMCMCで推定して答え合わせ 具体的には、とある植物の体サイズが(3.0~7.0の0.1刻みの離散値をとる)を説明変数として、 ポアソン分布に従う種子数(0以上の整数)の確率分布を推定します。 利用ツール、ライブラリ MCMCサンプラー: S
どうも動画といえば僕です。Rhiannonです。 前回、前々回と動画ファイル自体についての記事を書きましたが、今回はVMAPについて解説しようと思います。 VMAPって聞いた事あるけど仕様書が英語だし読むの大変だと思っていた方の理解の一助になれば幸いです。 VMAPとはなんぞや? VMAPとはVideo Multiple Ad Playlistの略で、IABが規定したXMLフォーマットです。 どんなことができる仕組みなのかざっくり言うと、 コンテンツホルダーが「動画のこの位置にこの広告入れるぞ!」と決められる仕組み です。 動画ホルダーがプレイヤーをコントロールできるとは限りません。 (シンジケーションしていたり、いろんなプレイヤーに配信していて設定が大変だったり・・・) そうなると、コンテンツホルダーからすると、意図しない位置に広告が設定されてしまうといった可能性があります。 そういった
アドテクに関わる方であれば、必ず耳にするであろう「クッキー連携」をシンプルに説明してみようと思います。 クッキー連携は cookie sync(クッキーシンク、cookie synchronization の略)と呼ばれることも多いです。 Googleは cookie matching(クッキーマッチング)と呼んでいるようですが、やっていることは基本的に同じです。 クッキーは、サイトの提供元がユーザのブラウザに振るIDです。(手書きですみません。) サイトのコンテンツが複数の提供元で構成されている場合、提供元はそれぞれIDを振ります。 サイトに表示される広告の配信元がサイトの提供元と異なる場合は、広告配信元も自分でユーザにIDを振ります。 複数のサイトを並べてみます。 サイトAが「123」とIDを振ったユーザが、あっちこっちで別IDを振られています。 サイトEでは「ABC」、サイトEの広告
実際のテーブルは以下のようになっています。 実行したクエリ 具体的には、WEBログからセッション単位のデータを作成しています。 [sql] SELECT TD_TIME_FORMAT(min(time), ‘yyyy-MM-dd HH:mm:ss’, ‘JST’) as session_start_time, TD_TIME_FORMAT(max(time), ‘yyyy-MM-dd HH:mm:ss’, ‘JST’) as session_end_time, session_id, user_id, — TD_PARSE_USER_AGENTを利用してUAからOSの文字列を取得し、PC/SDを判定 CASE WHEN TD_PARSE_USER_AGENT( TD_LAST( useragent, time ), ‘os_family’ ) IN( ‘Android’, ‘iOS’, ‘
はじめに 環境について OS:OS X 10.9.5 Xcode:Version 6.2(OSX 10.0.5に互換してる最新だと思います) ⇒App storeでインストールしようとしても最新版しか選択できず… https://developer.apple.com/downloads/index.actionからとってきました。 ちょこっとだけswiftとXcodeについて。 Appleが提供するMacやiPhone等のプラットフォーム向け開発言語。 従来使用されていたObjective-Cよりスクリプト言語のような見た目でとっつきやすく、手軽に実行できる素敵なものです。 Cの複雑さに心が折れた私もすんなりできました。 xcode iOSアプリ開発iOSアプリ開発用のツールで、自動でコンパイルやらデバッグやらをやってくれる、 iOSアプリを
はじめに こんにちは。システム開発部の中村です。 機械学習についての理解を促進するため、 データから分類モデルを自動で構築する古典的な方法である、 ナイーブベイズ分類器を実装してみました。 最近はCloudVisionAPIなど専ら画像解析が流行っていますが、 自分のような初学者には敷居が高そうだったため、まずは自然言語処理です。 今回は、TwitterAPIを利用してbotアカウントから名言を収集し、 羽生さんと羽生くんを分類する羽生分類器を実装しました。 尚、APIクライアントはRuby、分類器はPythonで実装し、 形態素解析にはMeCabを利用しています。 また本来ならばどちらも羽生さんとお呼びしなければならない所、 便宜上フィギュアスケーターの羽生さんを羽生くんと表記させて頂く事をお許し下さい。 ツイートデータの収集 APIClientは、Twitter Ruby Gemを使っ
こんにちは。俺やで。 今回も前回から間が空いてしましたが、ビッグデータに対応したHiveで使える機械学習ライブラリ、 Hivemallの使い方について、書かせていただければと思います。 なお今回はQiitaのTreasure Data / Advent Calender 2015の12/3日分としても書かせていただいております。 Qiitaにリンク貼らせてもらうのも初めてで、ちょっと緊張しつつ書いてます。 今回は第3回です。第1回、第2回は以下を参照ください。 【第1回】【超入門】Hivemallで機械学習 〜Treasure Dataでロジスティック回帰編〜 【第2回】HivemallでMinhash!〜似てる記事を探し出そう。〜 今回は、Hivemall v0.4から使えるようになったRandomForestというモデルについて書こうと思います。 細かく書くと大変なことになるので、Ra
はじめに こんにちは、AudienceOne開発部です。AudienceOne開発部ではいわゆるビッグデータと呼ばれる大量のデータをアドホックあるいは定常的に日々ETLだの集合演算だのをする一方で、様々な大規模データ処理ソリューションを継続的に検証しております。 本記事は、その中でもユーザが保持している属性値に対する集合演算に特化した処理の高速化検討のために、Amazon ElastiCache上のRedisを用いた集計処理パフォーマンスを確認し、結果をまとめたものです。 Redisという名前はREmote DIrectory Serverの大文字部分を拾ったもので、最大の特徴は全てのデータをメモリ上に展開し処理するという点で、当然高速なのだけどその代わりデータを載せれば載せるだけそれなりのメモリを食いまくる、といった動きとなります。このため、「どのようなデータをどれくらい乗せたらどの程度
Data Tankとは? Treasure Dataの新機能でTreasure Dataのプラットフォーム上に構築されたデータマートです。 Tableau等のBIツールとの接続を想定されており、AWSでいうところのRedshift的なものだと考えるとわかりやすいかと。 Data TankはPostgresql9.4をベースに拡張にされており、ストアドや9.1から追加されたForeign Data Wrapperも利用可能になっています。 AudienceOneについて AudienceOneは、いわゆるDMP(Data Management Platform)で、どちらかというと、Public DMPに分類されています。 基本的な機能としては、Webデータの収集や分析、セグメンテーション、外部データ(3rdPartyデータ)との掛け合わせ分析、また、セグメンテーションしたデータをDSPなど
どうもこんにちわ。 最近は長尺の動画広告が増えてきましたね。 youtubeでもインストリーム広告で1分以上の長尺の動画広告が流れているのをよく見ます。 (※インストリーム広告:動画コンテンツの中や前後に差し込まれる動画広告) そうなると、ファイルサイズが大きくなるためファイルをダウンロードしながら再生する「プログレッシブダウンロード」が必須となってきます。 また、インストリームに限らず弊社のインリード広告のようなアウトストリーム広告でも再生開始までの時間を短縮するべく、プログレッシブダウンロードは必須の要素となります。 (※アウトストリーム広告:動画コンテンツのとは関係なく、ページ内で再生される動画広告) となるとmp4入稿の際に「moov atomをファイルの先頭に設置してください」なんて言われることがあるのですが、恐らく「moov atom? なんだそれ?」ということが多いのではない
次のページ
このページを最初にブックマークしてみませんか?
『DACエンジニアブログ:アドテクゑびす界』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く