LINE Haskellブートキャンプ

こんにちは、LINEでフロントエンド開発を担当しているJunです。

2016年10月24日~28日の5日間、「LINE Haskellブートキャンプ」というプログラムがLINEの渋谷オフィスにて開催されました。今回の記事では、同プログラムに参加した感想を書きたいと思います。

Haskellとは

Haskellは、柔軟性、合成可能性(composability)、安全性を維持しつつ、高性能のソフトウェアの作成を可能にする現代的なアプリケーションプログラミング言語です。ここ最近、Facebookやスタンダードチャータードなど複数の企業でHaskellを導入して商用利用の可能性を検証した例が増えており、数多くの言語・ライブラリがHaskellの方法論を借用して業界から注目を集めています。

LINEでも勉強会を立ち上げてHaskellを学習したり、社内サービスをHaskellで開発したりするなど、Haskellへの関心が高まっています。こうした中、5日間にわたって開かれた「LINE Haskellブートキャンプ」は、Haskellに興味のあるエンジニア同士が集まってHaskellに入門してみるプログラムでした。同ブートキャンプは、Haskellに対する奥深い学術的考察というよりは、誰もがHaskellに興味を持って使い始められるように、初心者レベルから学習することを目標にしました。進行役は、Haskellを使って社内サービスを開発した経験があるHanさんが担当してくれました。

LINE BOT AWARDS API協賛企業のご紹介

今回の記事では、ただ今絶賛エントリー募集中の[LINE BOT AWARDS][1]に、API協賛企業として参加いただいている各企業の協賛内容をご紹介します。

中には日本マイクロソフト社のMicrosoft Azureなど、本来有償のものをLINE BOT AWARDSにエントリーいただいている方に特別に無償提供しているものもあります。
是非この機会にエントリーください。様々なAPIを上手く活用した、斬新なbotが数多く生まれることを期待しています!

各社のAPI協賛の内容(順不同)

hachidori株式会社

同社のプログラミングレスチャットbot作成プラットフォーム「[hachidori][2]」を無償でご利用いただけます。お手続きは以下の通りです。

  1. アカウントを作成します。
  2. botの作成をクリックし、LINEを選択します。
  3. その中で、ディレクションに沿って必要情報を入れていただくと、サーバーレスで、botの作成が完了します。

日本マイクロソフト株式会社

Microsoft Azureを無償でご利用いただけます。
ご利用の詳細な手順は下記をご参照ください。

【コード認証】

  1. Azure Passのアカウントを作成します。
  2. 居住国とLINE BOT AWARDS事務局から発行されたPromo Codeを入力し、Submitをクリックします。
  3. Sign Inをクリックし、マイクロソフトアカウント(個人用でも法人用でも使用可能)に入ります(マイクロソフトアカウントをお持ちでない場合は、新規作成をクリックしてアカウントを作成してからご利用ください)。
  4. 確認ページに飛びますので、記載事項に間違いがないことを確認し、Submitをクリックしてください。
  5. Azure上で提供しているサービス内容を確認後、Activateをクリックします。

【Azure Pass利用開始方法】

  1. Azure Pass Activateのための必要事項を記入し、利用規約を確認の上Sign Upをクリックします(数分かかることがありますので、そのまましばらくお待ちください)。
  2. Sigh Upが完了しましたら、利用開始になります。

【諸注意】

  • 先着30名までとなります。
  • 2017年2月4日までにActivateしてください(それ以降は無効となります)。
  • 100ドル/月までを無料でご利用いただけます(超過分は料金が発生致します)。

セキュリティエンジニアからみたUnityのこと

この記事はLINE Advent Calendar 2016の16記事目です。

こんにちは、LINEエンジニアの愛甲健二です。所属は「セキュリティ室」の「Application Security Team」というところで、主にリリース前のGames/Appsの診断を行っている、いわゆる一般的なセキュリティエンジニアです。今日はUnityに関するセキュリティ視点の入門記事を書きたいと思います。

20161222_1

新語・固有表現に強い「mecab-ipadic-NEologd」の効果を調べてみた

LINE の Data Labs(データラボ)で自然言語処理に関連する技術に関わっている @overlast (佐藤 敏紀) です。この記事は、LINE Advent Calendar 2016 の 15 記事目です。

この記事をお読みの方には「LINE と自然言語処理って関係あるの?」と思われる方もいらっしゃる思います。

Data Labs ではデータ収集・解析基盤の開発や機械学習技術の適用だけでなく、自然言語処理に関する実用的な技術の開発・研究を、かなり真面目におこなっており、その成果によって弊社のお客様のお役に立つことは当然として、他社さまや研究者、学生さんにも広く貢献したいと考えております。

20161221_overlast_mecab_ipadic

Sparkと機械学習と時々MPI

はじめに

こんにちは、LINEで機械学習エンジニアを担当している久保です。この記事はLINE Advent Calendar2016の14記事目です。 今回の記事は、機械学習の(勾配などの)基本的な知識を持ち、Sparkにおける機械学習に興味がある人向けの内容となっています。

Sparkは大規模なデータのための分散処理フレームワークとして人気があり、弊社でも機械学習関連の開発において利用しています。 弊社では機械学習の特徴量の元となるデータがHDFSに格納されているため、それらを容易に読み込むことができる親和性の高さと、分散処理のコードが容易に実装できる所がSparkを利用する上での大きな魅力となっています。

具体的な利用方法として、例えば機械学習エンジンに入力する特徴量を作成するためのETL(抽出、変換、ロード)処理に利用しています。 また、LINE STOREにおける着せ替えの商品ページの右枠にあるアイテムベースのレコメンドやLINEアプリ内でLINE NEWSを立ち上げた際にトップ画面に出てくる「FOR YOU」枠のためのユーザベースのレコメンドなどにおいて、Sparkの機械学習ライブラリであるMLlibを用いてモデルの学習を行っています。

YAPC::Hokkaido 2016 SAPPORO と Fukuoka Perl Workshop #27 の登壇報告

どうもこんにちわ! LINE LIVEを開発している@Yappoです。この記事はLINE Advent Calendar2016の13記事目です。

はじめに

今回は他の記事とは毛色を変えて Perl 成分濃いめでお届けします。 今更 Perl かと思われるかと思いますが、弊社でも幾つかのサービスを Perl で構築しており現在もサービス提供を行っています。

また、ご存知の方は少ないかと思いますが、日本のエンジニア界隈で一大ブーム巻き起こしている Engineer’s Advent Calendar ですが、もともとは2008年に日本の Perl コミュニティで開催された事が発端なんですよね。 今回の記事を読む事で、この Engineer’s Advent Calendar が Perl コミュニティから産まれた理由、そのエンジニア文化の背景などの一端に触れて頂けたら幸いです。

Fukuoka Perl Workshop #27

リアルタイム画風変換とその未来

こんにちは。LINE Fukuoka でデータ分析やその基盤作りをしている tkengo です。この記事は LINE Advent Calendar 2016 の 12 日目の記事です。

2016 年の 11 月下旬、LINE Fukuoka で 2 日間の社内ハッカソンが開催されました。その時にいくつかのチームが結成され、IoT や VR、機械学習など、それぞれのチームで挑戦的なプロダクトが作られ、大いに盛り上がりました。今日は、その時に私たちのチームが作ったディープニューラルネットワークを使った以下のようなリアルタイム画風変換アプリケーションのお話をしたいと思います。

※ちょっとわかりにくいですが、下側のスマホのカメラに映っている映像に対してリアルタイムに画風変換処理を施し、それを上側のスマホで表示しています。

マイクロサービスのためのプロジェクト生成ツール Lazybones を使ってみた

こんにちは。LINE ゲームのプラットフォーム開発を担当している Kagaya です。6 日目の記事を担当した 川田さんと同様、今年の 4 月から新卒で入社して主に Java を使ったサーバサイド開発を担当しています。

こちらの記事は LINE Advent Calender 2016 の 11 日目の記事になります。

はじめに

LINE のサービスの多くは Microservices Architecture と呼ばれるような構成になっています。このアーキテクチャそのものについては、過去の LINE Developers Blog でも こちらの記事 で扱ったり、Developer Day にて こちらの講演 を行ったりしています。様々なメリットが提唱されていますが、チーム開発の機能的な側面から言えば、巨大なシステムの各機能を疎結合にすることで、新しくチームにジョインしたメンバーでも開発をスピーディに行う事ができるのがメリットといえるでしょう。

CMake を使ったクロスプラットフォーム開発環境

こんにちは、LINE で LINE GAME Clinet SDK の開発をしている やまぐち です。 この記事は LINE Advent Calendar2016 の 10 日目の記事です。

cmake_logo

弊社でも iOS / Android / Unity 向けに LINE GAME Clinet SDK を提供しています。コードは共通の C++ を使っているのですが、複数のプラットフォーム向けにビルドを行う必要があってソースファイルの管理やビルド方法がバラバラで大変ですよね。そこでクロスプラットフォーム向けのビルドシステムなどを調査してCMake を使ってクロスプラットフォームビルド環境を作ることにしました。

HBase Cross Row、Cross Tableトランザクション処理機能を実装してみました

こんにちは、LINEでGame Platformを開発している 趙 です。

この記事はLINE Advent Calendar 2016の9日目の記事です。

LINE Game Platformでは分散型でスケーラブルな高速データベースであるHBaseをメインストレージの一つとして使っています。HBase運用における問題のひとつは、cross row, cross tableトランザクション処理機能がない事です。Client Faultなどが起こった時の対応が難しいです。(例えば、HBaseにテーブルAとBがあり、ABの順番にデータを処理する場合、もしAの挿入の後にBの挿入に失敗した場合、データ不整合が起きます)

HBaseは幾つかの単行atomic apiを提供します。(HBase versionによって違うところがあります)