Tag Archives: summer homework

[Behavior Tree] ワタシハ ビヘイビアツリー チョットデキル

この記事は、 LINE Engineering Blog 「夏休みの自由研究 -Summer Homework-」 の 15 日目の記事です。

私は夏休みの宿題を最後の週に慌ててやる派でした。@overlastです。

小学生のうちに夏休みの序盤に宿題をすべて終わらせる大切さを実感する必要があったな、と後悔しきれない後悔をしております。


さて。私は Clova センターという部署に所属しており、Clova を構成するシステムのうち NLU(Natural Language Understanding / 自然言語理解)
と呼ばれるパートに関するサーバーサイドの開発をしています。

先日、三宅陽一郎さんと対談する機会を頂きまして、その対談中に考えていたのですが、
ゲーム業界においてキャラクター AI などを作成する用途で頻繁に使われている Behavior Tree(ビヘイビアツリー)というモデルを私は一回も使ったことが無かったんです。

[MySQL Workbench] VISUAL EXPLAIN でインデックスの挙動を確認する

この記事は、LINE Engineering Blog 「夏休みの自由研究 -Summer Homework-」 の14日目の記事です。

開発3センターでサーバサイドの開発を行っている大原(@kory1202)です。
私の部署ではLINEポイントの開発を行っています。

先日、あるテーブルからデータを抽出するコードを書いていたら先輩に「こういうインデックスが必要だよね。」と言われてインデックスについて知識が浅いことに気づかされました。そこで今回はインデックスについて MySQL Workbench の VISUAL EXPLAIN を使いながら勉強した内容を記事にしました。 VISUAL EXPLAIN は SQL の EXPLAIN を図で表示してくれるので、直感的にどの部分が悪いのか、インデックスを導入した時にどの処理が改善されるのかが直感的に分かるので非常にオススメです。

今回は MySQL 5.6 の InnoDB について話します。実験に使った OS は macOS High Sierra 10.13.4 です。

SPAJAM2018 参加レポート、そしてその後の開発

この記事は、LINE Engineering Blog 「夏休みの自由研究 -Summer Homework-」 の13日目の記事です。


LINEメッセージングアプリの Android Client の開発を担当している玉木です。

この記事では、先月開催された「SPAJAM2018 本戦」に私が参加した際のレポートと、このときに作成したアプリをハッカソン後にどのようにリファクタリングしていくかという点について書かせていただきます。

SPAJAM2018 参加レポート

SPAJAMとは、温泉でハッカソン を合言葉に、ネクストクリエイターの育成を目的とする国内最高峰のスマフォアプリをハッカソン形式で作り競技を行う全国規模の大会です。

LINEはSPAJAM2018にてシルバースポンサーを務めさせていただき、福岡予選での会場提供などをさせていただきました。特段スポンサーだから参加したというものではなく、趣味の一環としてハッカソンへの参加を時々しています。

今回私は友人と一緒にチーム「まどや」として参加し、なんと本戦にて最優秀賞をいただくことができました。

SPAJAMがどんな会場で開かれるのか などSPAJAM2018オフィシャルフォトと共にイベントの様子をご紹介します。

任意のSignal-to-Noise比の音声波形をPythonで作ろう!

この記事は、 LINE Engineering Blog 「夏休みの自由研究 -Summer Homework-」 の 12 日目の記事です。

こんにちは、LINE Ads Platformの開発チームに所属している新卒1年目の佐藤邦彦です。
本記事では、Pythonを使って任意のSignal-to-Noise比(SN比)の音声波形を作る方法を紹介します。なお、本記事の内容は、Clova等の弊社音声事業とは関係ありません。

音声のDeep Learning

画像処理分野においてDeep Learningが技術革新を起こしてから久しいですが、同様のことが音声処理の分野においても起きています。Deep Learningによって音声認識の精度は格段に上がり、Amazon EchoやGoogle Home, LINE ClovaなどのAIスピーカーが市場に普及しました。また、コンピュータによる音声生成(Text-to-Speech)の精度も上がり、その質は人間の声と区別が付きづらいほどです。

Deep Learningで音源分離したい

上記に挙げた音声処理以外にもDeep Learningによって格段に精度が上がっている音声分野があります。

そのひとつが音源分離です。
音源分離とは、複数の音源が混ざった入力波形を各音源の波形に分離することです。

Best practices to secure your SSL/TLS Implementation

この記事は、 LINE Engineering Blog 「夏休みの自由研究 -Summer Homework-」 の 11日目の記事です。

こんにちは、LINE Infra Protection チームのSecurity Engineeringを担当しているLee Jihoon(李志勲)です。

Infra Protectionチームは、業務環境とサービス環境で使用されるインフラを、より安全に作る業務を担当しています。そのような活動の一つとして、SSL/TLS証明書に対する管理や関連ガイドを提供する活動も行っています。大規模な環境ではセキュリティはもちろん、クライアントに対する互換性とサービス環境についても考慮が必要ですが、それらに関連する経験の一部を共有します。

はじめに

まず、TLS(Transport Layer Security、以前のSSL。一般的な表記に従い以下 SSL/TLS と表記します)とは何か、簡単に解説することからスタートします。

ブラウザのようなクライアントとウェブサーバが、公開されたインターネット網を利用してコミュニケーションする際に、望む相手と安全につながるために、必要なセキュリティメカニズムを提供するインターネットプロトコルがTLSです。

技術的な要件についてはRFC 2246(TLS 1.0)、RFC 4346(TLS 1.1)、RFC 5246(TLS 1.2)まで、現在広く利用されているTLSプロトコルについて確認することができますが、持続的にセキュリティ水準が高まっています。 最近(2018/3/21)、Proposed Standardで定められたTLS 1.3には、既知のセキュリティ問題を追加で考慮した設計が含まれています。

line-bot-sdk-go での Flex Message

この記事はLINE Engineering Blog 「夏休みの自由研究 -Summer Homework-」の10日目の記事です。

京都開発室の @sugyan です。京都の夏を初体験していますが、いやー凄まじい暑さですね。

さて、2018年6月、LINE Messaging APIで利用できるMessageタイプとして「Flex Message」が新たに加わり、複雑なレイアウトも可能なカスタマイズ性の高いメッセージを送信することができるようになりました。

公式SDKでも早速Flex Messageをサポートをしていこう、と実装を始めました。

今回はGo SDK担当としてFlex Messageのための機能実装で得た知見などを書いていこうと思います。

サーバーサイドKotlinの知見/KotlinでClova Skill Award挑戦

はじめに

LINE Engineering Blogをご覧の皆さまこんにちは!今日の記事は2名の連名によってお送りします。LINEでゲームプラットフォームを開発しているKagayaと、ライブ配信サービスLINE LIVEのAndroidアプリを開発しているakiraです。こちらはLINE Engineering Blog「夏休みの自由研究 -Summer Homework-」の9日目の記事です。

grpcでバラバラなslack botが1つになる

この記事は、LINE Engineering Blog 「夏休みの自由研究 -Summer Homework-」 の8日目の記事です。
はじめまして。LINEのIT戦略室という部署で社内システムの開発・運用を担当しております、suzuki-shunsukeです。

最近複数のSlack Botをgrpcを使って1つのBotに統合している話を書こうと思います。

経緯

自分は社内のSlackを管理するチームに所属し、そこでSlack Botを幾つか作成し、運用していますが、それらのBotを1つに統合してほしいという要望がありました。理由としては

  • Botを幾つも招待するのが面倒
  • どんなBotがいるのか把握できないので、1つにしてほしい
  • どんどんBotを追加していくより、1つのBotの機能を追加していくほうが、よりユーザーがBotに愛着がもてる

というものでした。

Clovaの開発関連情報のアップデートとスキル開発のインセンティブについて

こんにちは。LINEでテクニカルエバンジェリストとしてMessaging APIやClova Extensions Kit(CEK)等プラットフォームの啓蒙活動をしている立花です。
この記事はLINE Engineering Blog「夏休みの自由研究 -Summer Homework-」の7日目の記事になります。

この記事では公開から約1ヶ月経ったClova CEKへの各種アップデートや外部開発者の方によって執筆された開発関連情報、スキル開発のインセンティブについてご紹介します。

Go言語のGCについて

この記事はLINE Engineering Blog「夏休みの自由研究 -Summer Homework-」の6日目の記事です。

こんにちは、LINE Ads Platformの開発をしている岡田(@ocadaruma)です。

今回、個人的に以前から気になっていたGo言語のGCについて、この機会に調べましたので紹介いたします。

Go言語

Go言語はGoogleによって開発されたシステムプログラミング言語で、Channelを利用した並行性のサポートやGCを備えていることが特徴です。

Googleをはじめとして多くの企業が使用しており、LINE社内にもGoで開発しているツールやサービスが多数あります。

Go言語のGC

素朴な感覚で言えば、Go言語では低レイテンシなアプリケーションを容易に開発できるいっぽう、GCは他のランタイムと比較してシンプルに見えます。

たとえば、Go 1.10の時点で、Go言語のGCはConcurrent Mark & Sweep(以下CMS)コレクタであり、JVMなどで一般的なコンパクションや世代別GCは行いません。