ブックマーク / techblog.yahoo.co.jp (22)

  • コード品質を上げるために凝集度解析ツールをGo言語で自作した話

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog みなさんこんにちは。Yahoo!広告 ディスプレイ広告エンジニアの安部です。広告配信システムの開発を担当しています。 私がいるチームでは、レガシーシステムのモダン化に取り組んでいます。新しいシステムでは処理速度や書き易さの点からGo言語を採用しています。 新しいシステムでは、品質を担保するためにソフトウェアメトリクスをCIで監視しています。メトリクスの算出にはgolangci-lintを使っています。golangci-lintが算出するメトリクスには循環的複雑度などがあります。 今回は、golangci-lintが計測していない凝集度に着目しました。記事では凝集度の解説に加え、静的解析ツールの開発と導入など、凝集度をCI監視のメ

    コード品質を上げるために凝集度解析ツールをGo言語で自作した話
    zu2
    zu2 2024/02/26
  • 文字と行間の大きさは何が良い?読みやすさとKPI両立への挑戦

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、デザイナーの鈴木です。CTO室でユーザインタフェースの研究開発を行っています。 みなさんはスマートフォン向けのアプリケーションやWebページを作成する際、文字と行間の大きさをどうしたらよいか迷ったことはないでしょうか? 私たちはこの疑問を明らかにするためにクラウドソーシングを用いた大規模な実験を実施し、どんな大きさの組み合わせが適切であるか定量的・定性的な分析を行いました。記事ではこの実験と分析の結果について述べ、さらにこの知見をヤフーニュースに適用した結果どのような貢献が見られたかお話しします。 予備実験 読みやすさに影響を与えうるフォントプロパティはさまざまなものが考えられます。私たちはその中から文字と行間の大き

    文字と行間の大きさは何が良い?読みやすさとKPI両立への挑戦
    zu2
    zu2 2023/05/26
  • ヤフートップページの裏側:記事推薦システムの試行錯誤と今後の挑戦

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog Yahoo! JAPANアプリのトップページの上部には、編集者によってピックアップされた「トピックス」と呼ばれるトップニュースが6並んでいます。編集者が選定した質の高い記事を提供していますが、必ずしも各ユーザーの興味に適した記事が表示されているとは限りません。そのため、スクロールすると、記事推薦システムによって各ユーザーの好みを考慮した記事が自動で表示される仕組みになっています。 ニュース記事の推薦で特に重要なのは「即時性」です。ニュース記事では、情報が更新されると古い記事は役に立ちません。そのため、入稿された記事がいち早く推薦対象になることが重要になります。 たとえば、事前にユーザーごとの推薦記事一覧(レコメンドリスト)を作成

    ヤフートップページの裏側:記事推薦システムの試行錯誤と今後の挑戦
    zu2
    zu2 2023/02/27
  • ヤフー全社横断「Webパフォーマンス改善」の取り組み(Tech-Verse 2022)

    ヤフーで全社を横断して行ってきたWebパフォーマンス改善の取り組みを紹介します。以下の表の数値は、ヤフーのWebサービスと競合のWebサービスのパフォーマンス速度を比較したとき、ヤフーのWebサービスのほうが高速であるサービスの割合を示しています。プロジェクトの実施前は62%でしたが、実施後は83%まで改善することに成功しています。 ■ヤフーのサービスと、その競合に当たるサービスをベンチマークとして比較したとき、ヤフーのほうが速い割合 実施前 実施後 下図のサーチコンソール画面を見てください。Yahoo!映画におけるWebパフォーマンスが良好であることを示す「緑色」が大幅に増えています。Yahoo!知恵袋に至っては、改善が必要な「黄色」の割合をほぼ0まで減少させることができています。 このような結果を出すことができたプロジェクトで実践してきた内容を、3つに分けて紹介します。 実施した背景

    ヤフー全社横断「Webパフォーマンス改善」の取り組み(Tech-Verse 2022)
    zu2
    zu2 2023/01/24
  • 今は、もう、動かない、その User-Agent 文字列

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、広告エンジニアの中山です。 唐突ですが、みなさまの Web アプリケーションに User-Agent 文字列を参照する処理はありますか? User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.1234.56 Safari/537.36例えば User-Agent 文字列を解析して内容に応じて制御を分岐させたり、機械学習の特徴量として用いたり、さらには一般に悪しきユースケースとされていますが IP アドレスと組み合わせて fingerprinting に活用する … と

    今は、もう、動かない、その User-Agent 文字列
    zu2
    zu2 2022/12/19
  • iOS 16新機能「ロック画面に配置できるウィジェット」実装と注意点 〜 Yahoo!ショッピングの事例紹介

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは。Yahoo!ショッピングでiOS開発を担当している大前です。 今回は、Yahoo!ショッピングiOSアプリで対応した新しい「ロック画面に配置できるウィジェット」(以下、ロック画面ウィジェット)について紹介します。また、細かい実装例やその際に注意したポイントなどを交えてお話しできればと思います。 Yahoo!ショッピングiOSアプリのロック画面ウィジェットについてご紹介 Yahoo!ショッピングでは、Appleの新しいiOSバージョン「iOS 16」より新たに提供が開始されたロック画面ウィジェットに対応しました。 その日の日替わりクーポンを確認できる「日替わりクーポン」ウィジェット、その日のお得なキャンペーン情報が確認で

    iOS 16新機能「ロック画面に配置できるウィジェット」実装と注意点 〜 Yahoo!ショッピングの事例紹介
    zu2
    zu2 2022/10/05
  • 機械学習で実現するヤフーのOCR(文字認識技術)〜 PayPayフリマ 本棚出品での活用事例

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは。ヤフーで画像処理エンジニアをしている吉橋です。この記事ではヤフーのさまざまなサービスで使われている独自の画像文字認識(OCR)技術と、特に最近のPayPayフリマ「棚一括持ち物追加機能」での活用事例をご紹介します。 画像文字認識とは 皆さん、ウェブサイトを見ていて「このキーワード気になるな……よしコピーしてヤフーで検索してみよう! と思ったらこれ画像じゃん、コピーできないよ……」なんて困ったことはありませんか? ウェブで私たちが目にする情報は“テキスト”と“画像”の2種類が主なものです。 テキスト: 文字列としての情報を保持したデータであり、コピーやウェブ検索に利用したり解析したり、容易に活用できます。 画像データ:

    機械学習で実現するヤフーのOCR(文字認識技術)〜 PayPayフリマ 本棚出品での活用事例
    zu2
    zu2 2022/10/03
  • Yahoo! JAPAN がメールセキュリティ「BIMI」を導入するまでのお話

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは。メッセージング技術領域における第11代黒帯(ヤフーでのスキル任命制度)の中村成陽と申します。エンジニアとしてYahoo!メールを担当しております。 今回の記事では、メールの比較的新しい認証規格である BIMI についてのご紹介、そしてその BIMI を Yahoo! JAPAN が導入することになりましたので、それまでの過程や実際の対応内容などについてご説明します。さらに、BIMI における今後の展望に関しても触れられればと思います。 フィッシングメール対策として、Yahoo! JAPANから配信するメールにアイコンが表示される規格「BIMI」を導入(プレスリリース) BIMI とは? BIMI (Brand Indi

    Yahoo! JAPAN がメールセキュリティ「BIMI」を導入するまでのお話
    zu2
    zu2 2022/09/07
  • DNS over HTTPS(DoH)の気になる Web Browser 実装を確認

    Firefox の通信キャプチャ シナリオ 1-1 の通信を確認します。 まずは最初の Web Browser → DoH リクエストです。 Host: TEST_SERVER Accept: application/dns-message Accept-Encoding: Content-Type: application/dns-message Content-Length: 128 Cache-Control: no-store, no-cache Connection: keep-alive Pragma: no-cache 0x00 0x00 0x01 0x00 0x00 0x01 0x00 0x00 | ....... 0x00 0x00 0x00 0x01 0x03 0x77 0x77 0x77 | ......ww 0x06 0x67 0x6f 0x6f 0x67 0x6c

    DNS over HTTPS(DoH)の気になる Web Browser 実装を確認
    zu2
    zu2 2022/08/19
  • ブラウザバック時の表示を最適化する Yahoo!ニュースの取り組み事例

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは。Yahoo!ニュース を担当しているエンジニアの喜楽です。 今回は、Yahoo!ニュースが取り組んでいるブラウザバック時の表示最適化手法について紹介します。 なぜブラウザバック時の挙動に注目するのか ユーザーがYahoo!ニュースのページを閲覧し、別のページに遷移する方法は大きく分けて以下の2つが考えられます。 (A) リンクをたどってページを遷移する (B) ブラウザーのナビゲーションボタンまたはスワイプ操作によって遷移する 「戻る」による遷移(ブラウザバック) 「進む」による遷移(ブラウザフォワード) Yahoo!ニュースでは総PVのうち一定程度が(B)のブラウザバックまたはブラウザフォワードによるページ遷移時のも

    ブラウザバック時の表示を最適化する Yahoo!ニュースの取り組み事例
    zu2
    zu2 2022/01/05
    コメント欄の廃止を先にやって欲しい
  • EOLを迎えたSensuがPrometheusに託した、2万台規模のIaaS監視

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは。ヤフーのクラウドプラットフォーム部に所属している北田、馬場、高橋です。 私たちのチームは社内向けに IaaS 環境を提供しており、その品質を管理・維持するために監視システムを導入しています。 システムの部分的な障害や冗長性などを監視する目的で、私たちはこれまで Sensu を使っていましたが、その EOL をきっかけに Prometheus へ移行することにしました。 この記事では、Sensu の移行先として Prometheus を選んだ理由、Prometheus を利用した監視システムの構成、そして、Prometheus を導入した際の工夫などを紹介します。 ヤフーの IaaS 環境の監視状況 私たちのチームが社

    EOLを迎えたSensuがPrometheusに託した、2万台規模のIaaS監視
    zu2
    zu2 2021/12/25
  • 月間800億PVを支えるIaaS基盤の舞台裏(運用編)

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、社内IaaS(Infrastructure as a Service)の構築・運用などを行っている奥野です。私たちのチームはヤフー内のIaaS基盤の開発及び運用を担当しています。 IaaSとはサーバーやストレージ、ネットワークといったインフラリソースを仮想的に定義し、ユーザーへ提供するサービスです。ヤフーのIaaS基盤は社内のユーザーやサービスに対して幅広く提供しており、ヤフーがエンドユーザーに対して公開している多くのサービス(Yahoo!ニュースや、ヤフオク!など)もこのIaaS基盤を利用しています。 項では、「構築編」と「運用編」という前後編でこのヤフーのIaaS基盤についてご紹介します。 記事では「運用編」と

    月間800億PVを支えるIaaS基盤の舞台裏(運用編)
    zu2
    zu2 2020/10/26
  • 高次元ベクトルデータ検索技術「NGT」のGo APIとサーバ機能のOSS公開

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog はじめに 検索技術の森と申します。 先日、高速な近傍探索を実現するソフトウエアであるNGT(Neighborhood Graph and Tree)とそのPython用インターフェースを公開しております。それに引き続いてgongtとngtdを公開しました。 アプリケーション開発を想定して開発にGo言語、サーバプロトコルとしてHTTPとgRPCを採用しました。Go APIとしてgongtとHTTP/gRPCサーバ機能を提供するngtdを公開しましたので、近似ベクトル検索エンジンのアプリケーション開発が容易になることを期待しております。 前回のPython用インターフェースの時に使ったgensimを使い、gRPCPythonから登

    高次元ベクトルデータ検索技術「NGT」のGo APIとサーバ機能のOSS公開
    zu2
    zu2 2020/08/23
  • 不揮発性メモリでのデータベース処理最適化 〜 ヤフーにおけるデータベース技術の研究開発

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは! ヤフーでデータベースエンジニアをしている松浦です。 インターネットサービスを作る上で、そのデータの保持・管理を担うデータベースは重要なソフトウエアコンポーネントですが、今回のTech Blogでは、ヤフーにおけるデータベース技術の研究開発についてのお話をします。 ヤフー社内では、さまざまなデータベースを運用していますが、そのデータベースを最新のハードウエアに対応させる研究開発を行っています。 具体的には、不揮発性メモリを有効に活用するMySQLのストレージエンジン「Leo」の開発に取り組んでいます。 日は、Leoについて簡単にご紹介をします。 不揮発性メモリとは? まず、前段として、Leoのお話をする前に、不揮発性

    不揮発性メモリでのデータベース処理最適化 〜 ヤフーにおけるデータベース技術の研究開発
    zu2
    zu2 2020/05/30
  • プッシュ通知のタイミングを制御する話 〜 ユーザーの空気を読む通知

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog Yahoo! JAPAN研究所 坪内と申します。今日は通知の話です。 プッシュ通知に気づかなかったり、タイミングが悪くてイラっとしてしまうことはないでしょうか? 最適なタイミングで通知する研究結果をご紹介します。 みなさんが目にする、ヤフーの広告の表示や、オススメの情報は、パーソナライズされています。つまり、過去のユーザーの行動履歴から「この人は釣りが趣味の人だ」と推測し、釣りに関するニュースや、釣竿のレコメンデーションをしています。これはプッシュ通知もしかりです。プッシュ通知は表示できる文字数や送信できる通知数に制限があります。ユーザーの興味などから、この人にはこの通知だ! というのを送ります。ここまでは、広告やレコメンデーショ

    プッシュ通知のタイミングを制御する話 〜 ユーザーの空気を読む通知
    zu2
    zu2 2020/05/18
    “電池消費については、おっしゃる通り、通知が届いた後、スマホの中で「今でしょ!スコア」を出し続け、計算します。計算量が増えることにより電池消費も多くなります” 多数のアプリが同じことをやり始めたら
  • IPv6でのライブ配信とリクエスト傾向 〜 選抜高校野球大会の配信事例 #IPv6

    こんにちは、Yahoo! JAPANのCDNを運用している佐藤です。 6月にプレスリリースが掲載されましたが、3月23日から4月3日にかけて第91回選抜高等学校野球大会が行われ、Yahoo! JAPANでは全試合のライブ配信をしていました。今回のライブ配信では弊社初の試みとしてIPv6を用いた動画配信を行いましたので、ライブ配信の構成やIPv6も含めたリクエスト傾向について紹介します。 ライブ配信に向けての準備 試合日程は3月23日から4月3日の11日間でしたが、ライブ配信は3月14日のキャプテントークや3月15日の組み合わせ抽選会でも行っていました。コンテンツの配信周りはCDNチームを始めとしたインフラ部門が担当しており、主にCDNチームが担当した内容は下記の通りです。 メディア部署との調整 新しいCDN環境の構築 高負荷時の負荷分散対策の準備 配信に向けてのCDN環境は、現在トップペー

    IPv6でのライブ配信とリクエスト傾向 〜 選抜高校野球大会の配信事例 #IPv6
    zu2
    zu2 2019/08/14
  • Callback を撲滅せよ

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは。言語サポート(Node.js)チームの伊藤(@koh110)です。 Node.js v10 も10月にLTSとなり async/await によるフロー制御は当たり前のように利用されるようになってきました。JavaScriptの非同期処理は async/await から覚える人も今後増えていくでしょう。今回はそんな非同期処理について、社内での事例を交えて記事を書いていこうと思います。 index Promise 化がなぜ重要なのか ユーザーに promisify をさせる落とし穴 Road to Promise まとめ Promise 化がなぜ重要なのか ちょうど3年前のアドベントカレンダーで、今後はいろいろなモジュー

    Callback を撲滅せよ
    zu2
    zu2 2019/01/19
  • ありがとう、MYM 安らかに眠れ - Yahoo! JAPAN Tech Blog

    特筆すべきはボット数かもしれません。ボットは何らかの操作を自動で行うために作られたプログラムで動作するアカウントなのですが、なんとそのボットの数(14,000)がユーザーの数(18,000)に迫りつつあります。MYMのボットは通常ひとつの部屋にリンクしているため、おそらく同じような機能を持ったボットが大多数だと思われますが、ボット数 14,000 はインパクトのある数字ですね。 興味深い部屋の数々 MYMはこの8年間で計150,000の部屋が生み出されました。業務系・技術系・雑談系を問わず、異彩を放つ部屋は数え切れないほどあります。ここでは数多くの部屋の中でも、ひときわ特徴的な部屋を紹介してみようと思います。 もちろんすべての部屋を把握しているわけではないため、あくまで把握している範囲内での紹介となることをご了承ください。 トピックス編集 Yahoo!ニュース トピックスの編集業務に活用さ

    ありがとう、MYM 安らかに眠れ - Yahoo! JAPAN Tech Blog
    zu2
    zu2 2018/12/02
  • ヤフーの分散オブジェクトストレージ Dragon について

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、データ&サイエンスソリューション統括部所属の後藤泰陽(@ono_matope)です。少し時間があいてしまいましたが、9月19日にお茶の水女子大学で開催された WebDB Forum 2017 において、分散オブジェクトストレージ “Dragon” について講演しました。良い機会なので、エントリでもDragonについてご紹介させていただきたいと思います。 発表資料 WebDB Forumでの発表資料については以下をご覧ください(講演時の内容と一部異なります)。 日語版 Dragonとは? Dragonは、ヤフー・ジャパンで開発された分散オブジェクトストレージシステムです。Amazon S3互換のWeb APIを実装

    ヤフーの分散オブジェクトストレージ Dragon について
    zu2
    zu2 2017/10/12
  • 【重要なお知らせ】「YOLPカセットギャラリー」サービス終了のお知らせ

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog Yahoo! JAPAN サービスをご利用いただきありがとうございます。 「YOLPカセットギャラリー」は、2014年5月29日(木)をもちまして、サービスを終了させていただくことになりました。サービス提供終了後は、データの入稿、修正、閲覧、外部サイトへの貼り付けなどすべての機能がご利用ができなくなりますのでご注意ください。 -------------------------------------------------- ▽対象サービス 「YOLPカセットギャラリー(旧バージョンも含む)」 ▽終了予定日 2014年5月29日(木) ------------------------------------------------

    【重要なお知らせ】「YOLPカセットギャラリー」サービス終了のお知らせ
    zu2
    zu2 2014/04/02