LINE Engineering
Blog

Total 42 Tagged in ’#AdventCalendar’
  • Prometheusをサービスとして提供する
    Paul Traylor 2017.12.25

    現在、開発者向けの便利なサーバーモニタリングシステムと通知システムの構築に携わっています。

    こんにちは。LINE Fukuoka開発チームのPaul Traylorです。LINEファミリーアプリを支えるたくさんのサーバーのモニタリングを担当しています。この記事はLINE Advent Calendar 2017の25日目の記事です。

    ほとんどの開発者にとって興味深いことといえば、コード作成や新機能の追加ではないかと思います。しかし機能が正常に動作しないときは、原因がわかれば役に立ちますよね。とはいえ、開発者が自分自身でモニタリングの設定を行うのは、そう簡単ではないときもあります。そこで私は、最高のパフォーマンスのためあらゆるサービスをモニタリングできるように、モニタリングの設定管理を簡単にすることに取り組んでいます。その一環として開発されたのが、Prometheusの設定を管理するためのツールであるPromgenです。これを利用すれば、モニタリングターゲットを簡単に登録したり、担当サービスのアラートを購読したりできます。

    モニタリングの設定

    ほとんどのサービスは導入時にはシンプルで小規模なものですが、時間が経つにつれ、数百台のサーバーにまたがる数十ものコンポーネントで構成されるようになります。そうした中でモニタリングを設定するのは容易なことではありません。そこでPromgenは、あらゆる設定を1箇所でまとめて行い、一目で確認できるように開発されました。

    targets

    Prometheus Promgen AdventCalendar

    もっと見る

  • VoIPのオープンソースライブラリPJSIPにおけるバッファオーバーフロー
    Kim Youngsung 2017.12.24

    LINEでセキュリティエンジニアとして働いています。バグを探すのが楽しく、セキュアコーディングへの関心が高いです。

    こんにちは。セキュリティ室(アプリケーションセキュリティチーム)で主にLINEサービスのセキュリティ診断を担当しているYoungsung Kim(Facebookアカウント/Twitterアカウント)です。

    これはLINE Advent Calendar 2017の24日目の記事です。

    今日はVoIPのオープンソースライブラリであるPJSIPの脆弱性(CVE-2017-16872およびAST-2017-009)について書かせていただきます。PJSIPは、標準プロトコル(SIP、SDP、RTP、STUN、TURN、ICE)を実装したオープンソースのマルチメディア通信ライブラリです。たとえばIP PBXやVoIPゲートウェイなどで広く使用されているAsteriskフレームワークは、PJSIPを使用してSIPスタックを実装しています。

    はじめに

    今回発見した脆弱性は、64ビット環境においてクライアントから受け取ったデータを処理する際にsigned intからunsigned longへの暗黙的な型変換(型キャスト)が行われており、そこで整数型の符号拡張を考慮していないことが原因でバッファオーバーフローが発生するというものでした。この脆弱性についての詳細は、「(Security) Function in PJSIP 2.7 miscalculates the length of an unsigned long variable in 64bit machines」を参照してください。

    VoIP Security Vulnerability OpenSource CVE PJSIP PJPROJECT ASTERISK AdventCalendar

    もっと見る

  • AIに「Clova、今日の天気は?」を理解させることの面白さ
    overlast 2017.12.23

    LINEのData Labsに所属している佐藤敏紀(@overlast)です。この記事はLINE Advent Calendar 2017の23日目の記事です。

    この記事では、スマートスピーカーで対処を求められる自然文クエリの言い換えがどれほど多様であるかを示し、「スマートスピーカーを実現するための自然言語処理の楽しさ」をお伝えしたいと思います。

    はじめに

    みなさんはスマートスピーカーを家に置いていますか?

    私は自宅のリビングに弊社が販売しているClova FriendsClova WAVEを置いていますし、それ以外に、Google HomeAmazon Echo Dotも設置しています。

    ちょっと多すぎでしょうか (;^_^A

    これらのスマートスピーカーは、主に人間の言葉を聞いてその内容に基づいた動作をします。たとえばClova Friendsに「Clova!小町さんに電話して(クローバ コマチサンニデンワシテ)」と、電話をかける気持ちで声をかけると、Clova FriendsはLINEのIP電話機能を使って小町さんに電話をかけてくれます。

    スマートスピーカーは、主に音声を使ってユーザーの言葉に応答します。画面が付いているなら音声以外に画像や動画を使った応答もできますし、さらに手足が付いているなら簡単なジェスチャーも同時にできるでしょう。

    スマホやパソコンから得られる情報の形式は主にテキストや画像ですが、スマートスピーカーからは、音声、映像、アクションなどが融合した「誰かと会話したときのような」情報が得られます。

    他の人間が発信する情報というだけであれば、テレビやラジオなどのマスメディアからも多くの情報を得られます。しかし、個人用として提供されているスマートスピーカーなら「より自分の今の状況に合う情報」を得ることができます。

    スマートスピーカーによる応答が面白いのは、音声認識によりクエリを取得して、音声合成でクエリを処理した結果を発話することで、「誰かと会話したときに近い形で」「よりユーザーの状況に合う情報」を返せるところだと思っています。

    自然言語処理 NLP AdventCalendar

    もっと見る

  • コード分割(Code Splitting)を簡単に実装できるgrow-loaderを作った話
    sunderls 2017.12.22

    はじめに

    こんにちは、LINEマンガJavaScript担当の@sunderlsです。

    これはLINE Advent Calendar 2017の22日目の記事です。今日は、webpackローダーのgrow-loaderを紹介します。

    LINE Engineering Blogの記事「LINEマンガ:Page Stackを使ってサクサクなページ遷移を実現できました」でご紹介しましたが、LINEマンガはWeb技術で実装されています。

    Webでネイティブアプリに近いユーザー体験を提供するため、いろいろ工夫しています。今回は、数ある工夫の中からコード分割の実装を紹介したいと思います。

    なぜコードを分割するのか

    LINEマンガでは、JavaScriptのソースコードをもともと1つのファイルにバンドルしていました。しかしサービスが成長するにつれて、ページ数が増え仕様も複雑になり、バンドル後のファイルサイズがどんどん大きくなってきました。将来を考えると1つにバンドルするのはやはり望ましくないと考え、コード分割の実装を始めました。

    grow-loader JavaScript AdventCalendar

    もっと見る

  • Qiitaで人気のLINE関連投稿紹介(保存版)
    Shinichiro Isago 2017.12.21

    Developer Relations Teamマネージャーの砂金(いさご) @shin135 です。この記事はLINE Advent Calendar 2017の21日目の記事です。

    LINEでは12月よりDeveloper Relation Teamを新設し、より一層エンジニアのみなさまとの関係構築に注力して参ります。

    LINEとしてエンジニアが積極的に情報発信してゆく雰囲気を応援しようという意図で、Qiitaのアドベントカレンダーに協賛させていただいている流れもあり、今回はQiita上でLINE、特にチャットボット開発に関連した記事をピックアップして、みなさまが後に参照するときに困らないためのまとめ記事として紹介してゆきます。LINE Bot関連情報はWeb上に多くあるものの、まとまった記事を見つけにくいというご意見もいただいており、こちらの投稿を「はてぶ」などで保存版としてご活用いただけると幸いです。ここに掲載させていただいた方々のみならず、LINEが公開しているMessaging APIやLINE Loginを実際に試していただいたすべてのエンジニアのみなさまに、改めて御礼申し上げます。

    Qiita上の投稿は1.事例系、2.作り方解説系、3.Tipsの3つに分類することができそうなので、順にご説明してゆきます。

    AdventCalendar Bot

    もっと見る