Tag Archives: AdventCalendar

LINE Things でつくったプロトタイプデバイスの話

こんにちは。LINE Thingsの開発を行っている伊藤(@cpulabs)と川田(@hktechno)です。 Advent Calendar 2018の5日目になります。

LINEはソフトウェアの会社だと思われる方も多いと思いますが、これから紹介する内容はLINE Developer Day 2018にて公開したLINE Thingsのハードウェア開発に関する内容です。 LINE ThingsはLINEアプリケーション上でBluetooth Low Energy (以降、Bluetooth LE)に対応したデバイスをLINE Front-end Framework (LIFF)を用いて操作することが出来るIoTプラットフォームです。この記事で紹介するのは、LINE Thingsの概要とその検証・デモのために作成した社内向けにデバイスについてです。

LTOドライブを使ってみた

こんにちは、LINEメッセージングアプリの Android Client の開発を担当している玉木(@r_ralph_h)です。
この記事では、あまりコンシューマー向けには馴染みのない「LTOドライブ」について、実際に使ってみて紹介する記事になります。

LIFF + TIC-80

こんにちは、LINE FukuokaのAndroidエンジニアでLINEのメッセンジャーアプリの開発を担当している吉田清亮 (@seisuke)です。この記事は LINE Advent Calendar 2018 の1日目の記事です。

先月開催された社内Hackathonで、Fantasy Consoleと言われる聞きなれないジャンルのプロダクトであるTIC-80をLIFFで動かしてみました。
せっかく得た知識などを共有できればと思い、この記事を書くことにしました。

LINE Fukuokaでは毎年Hackathonを開催しており(去年のレポート)、何人かのプレゼンターが開発企画の提案を行い、それに興味をもった4,5人のチームで2日間開発を行うのが、基本の形となります。その際に普段自分の業務ではあまり縁のない技術を使うチームも少なくないです。 自分はTIC-80を、WebAssemblyを利用することによって、LIFF の中で動作させるという企画を行い、開発することになりました。

LINE Advent Calendar 2018のお知らせ

Developer Relationsチームの三木です。

12月1日から25日にかけて、LINE Advent Calendar 2018をLINE Engineering Blogにて実施することになりましたので、お知らせいたします。LINEのさまざまな部門に所属するエンジニア有志25名がバトンを渡しながら、記事を公開していきます。開始に先立って、本記事ではそのラインナップをご紹介します。

Prometheusをサービスとして提供する

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

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

モニタリングの設定

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

targets

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

こんにちは。セキュリティ室(アプリケーションセキュリティチーム)で主に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」を参照してください。

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

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

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

はじめに

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

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

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

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

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

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

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

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

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

はじめに

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

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

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

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

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

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