タグ

ブックマーク / tech.naver.jp (27)

  • 急増するLINEインフラの課題と対応 « LINE Engineers' Blog

    こんにちは。今回はITサービスセンターより、インフラ運営の観点から急増するLINEインフラの課題と対応について記させていただきます。 はじめに 先日開催したLINE Developer Conference(インフラ編)には大勢の方にいらしていただきました。カンファレンスでは、LINEサービスが始まってから約2年の間に我々はどういった方法でインフラ運営を行い、またどんなことに悩んできたのかを、システム、データベース、ネットワークの観点からそれぞれ発表させていただきました。 カンファレンスはLINE株式会社が様々な技術をどのように使い、どのように運用を行っているのか。現在どのような技術的なことに取り組んでいるのか日エンジニアの皆さんに知っていただくために開催されました。結果としてインフラ編では150名の定員に対して430名のご応募をいただいたとのことでLINEサービスに対する関心の高さを

    急増するLINEインフラの課題と対応 « LINE Engineers' Blog
  • LINE iOSアプリ開発についてのご紹介 LINE Engineers' Blog

    [English version] はじめまして、LINE技術戦略室のhayaishiです。 趣味自転車と言っていますが最近は全く乗っていません。 この記事では、LINEのiOSアプリ開発に関することをいくつかご紹介させていただこうと思います。 LINEのiOSアプリ開発環境 ソースコード管理 ソースコードはgitで管理しています。gitのリポジトリブラウザとしてGithub Enterpriseを利用しており、Githubでお馴染みのPull Requestなどを活用して開発を進めています。 また、LINEのiOSアプリのタスクについてはGithub Enterpriseとは別のチケット管理システムを利用しておりそちらのステータスと連携して開発者、QA、プランナー間の開発状況の共有を行っています。 Gitでの開発フローについて LINEのiOSアプリはgithub-flowの様に

    LINE iOSアプリ開発についてのご紹介 LINE Engineers' Blog
  • LINE遠征隊 « LINE Engineers' Blog

    こんにちは。LINEで品質向上を担当しているソクチャンです。 この文では、LINEが全世界にサービスを拡大する過程において、どのようにユーザーの立場から品質を測定し、改善しているのかについての取り組みをご紹介します。しかし、ここに書いた取り組みはごく一部であり、実際にはすべての開発者、企画者、さらには事業担当者もユーザーの立場から、各自努力をしていると思います。LINEの競合に影響のない小さな範囲で書いてみます。 LINEは2011年6月、日でサービスを開始して以来、現在では4億人に近いユーザーが使用するメッセンジャーとなっています。他のどのサービスよりも急速に成長しているだけに、LINEも数多くのユーザーの品質問題を経験してきました。人間が自分の生まれたところ以外で生きるためには、考えや話す方法を変えなければならないように、LINEも生まれた日を脱し、他の国でもうまく動作するために

    LINE遠征隊 « LINE Engineers' Blog
  • LINE Serverの開発とリリースプロセス « LINE Engineers' Blog

    皆さんお元気ですか?LINEサーバー開発室でサーバ開発を担当している崔珉秀と申します。 この記事ではLINEのサーバーの開発とリリースプロセスについて述べたいと思います。 LINEの開発者はどんな形で開発しているのか、サービスに変更事項をどのように適用しているのか、お互い協力してより良い開発環境を得るためにどんな努力をしているのかをお伝えする機会になったらいいなと思います。 ここで述べるリリースプロセスは、LINEのサーバ開発の流れとソース管理システムの運用方法、そして番環境に変更事項を適用するまでの過程です。 LINEのServer Applicationはその役割とシステムの構成によって複数のServer Applicationに分かれて構成されています。 例えばNetwork通信及びProtocolなどを担当するApplication、messagingやsocial graph

    LINE Serverの開発とリリースプロセス « LINE Engineers' Blog
  • flexboxの旧仕様、改定仕様、現行仕様の一覧 « NAVER Engineers' Blog

    暑さもやわらいできたような気配がしてきました。皆様いかがお過ごしでしょうか。 久しぶりのブログ更新です。UIT 富田です。 今回はCSSでのレイアウトをより柔軟にしてくれるflexboxについて解説します。 flexboxは大幅な仕様の変更が過去に2度もあり、各ブラウザとそのバージョンによって実装している仕様が異なるため、後方互換をきっちり対応しようとすると、gradientと並んで2大考えるのをやめたくなるプロパティとなっております。 しかしflexboxを利用することで、現時点ではCSSだけでの対応が難しかったり、複数のプロパティを複雑に組み合わせる必要があるレイアウト(例えば一番大きい高さに揃えた要素を横に並べたり、子要素を上下左右中央位置したりといったもの)が、容易に利用できるようになるという大きなメリットもあり、使えるならば使っていきたいプロパティでもあります。 にも関わらずf

  • Unicode 6.0を含めた絵文字変換を実現する « NAVER Engineer's Blog

    こんにちは。検索サービス開発2チームの斎藤です。休日は都内の美術館や博物館を巡り歩いています。 先日は池袋の古代オリエント博物館に行き、ハムラビ法典(のレプリカ)を見てきました。楔形文字はアシの筆を粘土板に押し当てて記述するものですが、ハムラビ法典は閃緑岩の石柱に彫られたそうです。「法典は石柱に彫ってね」と役人に無茶ぶりされて、当時の職人も「用途がちがーう」とか愚痴ったのかなぁ・・・と妄想してしまいました。 さて私の普段の業務ですが、NAVER LINEプロジェクト絵文字やスタンプ関連の開発に携わっています。ちょうど楔形文字の話もしたところですので、このエントリでも絵文字の変換処理について解説させていただきます。 ドコモ/au/ソフトバンクの携帯電話(以下、フィーチャーフォン)で長く使われてきた絵文字も、2010年にUnicodeコンソーシアムによってUnicode 6.0で正式に定

  • Hadoop Conference Japan 2013 Winterで話してきました! « NAVER Engineers' Blog

    こんにちは.サービス開発2チームの中村です. 先日1/23に行われた日最大級のHadoopユーザー会イベント,「Hadoop Conference Japan 2013 Winter at 東京ビッグサイト」にて,私,中村と同チームの大平が講演させていただきました. 中村の方からは,まずLINEのサービスやストレージの要件と現在の1億ユーザーを支えるHBaseで扱う規模感を共有しました.後半では,HBaseのサービス投入から1年経過して,我々のために作ったもの・得られたノウハウについて少しだけ紹介しました. ポイントは,HBaseをリアルタイムサービスのストレージとして採用し,ノンストップ環境の中でどのように可用性の高いストレージの構築を目指しているか,という点です.このために,HBaseが備えるレプリケーションやリージョンの自動管理機能などは使用せず,自分たちのサービスに特化させた方法

  • ReFlowの原因とマークアップの最適化 « NAVER Engineers' Blog

    自己紹介 ネイバージャパンのUIT(User Interface Technology)チームの裵完理(ベワニ)です。 概要 CSSJavaScriptを使って複雑なデザインや動的なページを実装しているサービスが増えてきていますが、速度低下などの問題が発生しやすくなっています。これを100%直すことは難しいですが、改善するにはブラウザレンダリングプロセスを理解する必要がありますので、理解した上で改善方法を探してみましょう。 ブラウザレンダリングプロセスの理解 ブラウザの基構造 User Interface – アドレスバー、戻る・進むボタン、ブックマークメニューなど、メインウィンドウに表示(document)されるページ以外の部分 Browser Engine – UIとレンダリングエンジン間のアクションを制御するもの Rendering Engine – リクエストしたコンテンツを表

  • NAVERまとめに見る遅延ロードのすすめ « NAVER Engineers' Blog

    あけましておめでとうございます。NAVERまとめのフロントエンドを担当している縣です。初詣で引いた大吉のおみくじを握りしめながら今年も張り切っていこうと思います。 今回はJavaScriptの遅延ロードの仕組みをNAVERまとめに導入した際のお話を紹介します。 遅延ロードの検討 昨年NAVERまとめのまとめ閲覧ページや、まとめ編集ページでのJavaScriptファイルの読み込みを遅延ロード化する作業をしました。元々はページ読み込み時に全て読み込ませていましたが、JavaScriptファイルが巨大になってきてパース・実行に時間がかかるようになったことから遅延ロードを検討することになりました。 遅延ロードの利点というとJavaScriptファイルの読み込み・実行によるブラウザのレンダリング停止を防ぐのはもちろんですが、どのファイルがいつどこで必要になるかを明確にすることもでき、依存関係を動的

  • Adopting SPDY in Line – Part 1: An Overview « NAVER Engineers' Blog

    We are constantly striving to improve the user experience of Line. Given the nature of Line as a communication tool, one way to do this is to reduce the time it takes to send and receive messages. Making the connection to our servers more efficient is one way to accomplish this. Until recently, Line had been using HTTP to transmit messages. HTTP, well known for its use in web browsers, has its str

  • “Backbone.js gives structure to web app” « NAVER Engineers' Blog

    こんにちは、開発1室UITチーム 清水@tori3_jpです。 さて、今回はLINEのスマートタブレット向けブラウザ版でも採用したJavaScriptのMVC FrameworkであるBackbone.jsについて紹介したいと思います。 この数年でブラウザの高速化やHTML5の機能の実装が進むにつれHTML/CSS/JavaScriptでよりネイティブアプリケーションに近い表現がブラウザ上で可能になりつつあり、それにともない開発はより複雑になってきています。 jQuery pluginなど使えば短いコードで様々な機能を手軽に実装できますが、規模が大きくなるにつれcallbackが増え、徐々に見通しの悪いコードになりがちです。また、DOMとデータの分離が難しくなることも問題となってきます。 そこで、Javaなどで広く使われているデザインパターンの1つであるMVCパターンで構造化された設計

  • Angular JSを使おう2 Testaularの使い方 « NAVER Engineers' Blog

    こんにちは、こんばんわ NHN Japan ウェブサービス部開発1室UITチーム 吉田徹生(@teyosh)と申します。 前回の続きでAngularJSについて紹介していきたいと思います。 AngularJSって何?という方は前回の記事[Angular JSを使おう]を御覧ください。 ここ数年でJavaScriptのコードは膨大に増えてきていると感じています。 出来うる限りバグを少なくしよう、保守をしやすくしようと様々なライブラリーやデザインパターンが導入されてきています。 それに伴い、JavaScript界隈にもテストを重視する様になってきて、クオリティも上がってきていると思います。 さて、JavasScriptのテストといえばQunit、Jasmine、Mocha、seleniumなどを挙げられると思います。 今回はそれらとは少し違うAngular JSのために作られたTes

  • NAVER Engineer's Blog

    はじめまして! NAVER Japan検索サービス開発室の福島です。 NAVERサービス開始から2年経ち、もうそろそろやっといてもいいんじゃね?的な雰囲気になったので、この度、NAVERのエンジニアによるブログを開始することになりました! 検索サービス開発室には、フロントエンド、バックエンド、アプリ開発やQAなど様々な業務に携わるエンジニア達が所属しています。 そんなエンジニアたちによるNAVERサービスの裏側や興味がある技術、実験的な試みやノウハウ、失敗談、そしてお知らせなど多岐にわたる内容をお伝えしていく予定です。 どんな展開になるか未知数なところもありますが、あまり気負わずに続けていきたいと思っていますので、今後ともよろしくお願いいたします!

  • Backbone.js 1.0に向けての変更点 « NAVER Engineers' Blog

    UITチーム 清水大輔 (@tori3_jp)です。 2012年も残り僅かとなりましたが、年の瀬をいかがお過ごしでしょうか。 Backbone.js Advent Calendar 2012の10日目のエントリーとなります。 先月、DailyJSというJavaScript関連のトピックを配信しているサイトに Backbone.jsの次期リリースに関する記事が投稿されていました。 今回はこの中からBackbone.jsの次期リリースで予定されている変更点について紹介したいと思います。 Backbone.$ Backboneで扱うjQuery互換ライブラリへのエイリアスが変更されます。 ローカル変数$を参照していたものがBackbone.$に変更されます。 - var $ = root.jQuery || root.Zepto || root.ender; + Backbone.$ =

  • AngularJSを使ってみよう « NAVER Engineers' Blog

    こんにちは、こんばんわ NHN Japan ウェブサービス部開発1室UITチーム 吉田徹生(@teyosh)と申します。 最近ではJavaScriptのMVCフレームワークが雨後のタケノコのようにたくさん出てきています。 先日Quirks ModeがJavaScript Libraryの利用状況をアンケートが公開していました。 backbone.jsやknockout.jsなど、MVCライブラリもランクインしてきました。 その中で今回はAngularJSを紹介しようと思います。 まずは、Angular JSについて AngularJS(アンギュラージェイエス)は、Googleとコミュニティによって開発されているオープンソースのJavaScriptフレームワークである。ブラウザ上で動作するウェブアプリケーションの開発にMVCアーキテクチャを取り入れることを目的としている。MIT L

  • compassのベンダープリフィックス制御 « NAVER Engineers' Blog

    歳晩の候、皆様におかれましてはますますのご繁栄の事とお喜び申し上げます。 NHN Japan ウェブサービス部開発1室UITチーム(長い) 富田(@a_t)です。 CSS Preprocessor Advent Calendar 2012の3日目、css書くのに便利だからといって盲目的にcompass使ってないでちょっとは中でなにをしているか知っておいてもよかろうもん ということで タイトルのとおり、compassがベンダープリフィックスの制御をどのように行なっているかについて書きます。compassのソースをまだ一度も見たことがない人向けの内容です。 sassについてよくしらない、というかたは過去の記事をよむとわかるかもしれません。 CSS3関連のmixinはなにをしてるか compassのCSS3関連のミックスインは、引数に値を渡してあげるだけで、しちめんどくさいベンダープリ

  • 「カジュアル」な規模のデータクラスター上でのデータ解析処理 « NAVER Engineers' Blog

    今年はさだまさしさんのデビュー40周年ということで、記念コンサート「さだまつり」も絶賛開催中の折も折、残暑も厳しい中皆様いかがお過ごしでしょうか。大平です。 さだまさし氏は経験の豊富な方ですので彼の歌や発言から学ぶことは大変多いのですが、個人的に非常に感銘を受けているのは「歌はコンサートで成長する」という言葉です。歌い手として、「歌」という作品を作って公開・販売するだけが仕事ではなく、実際にコンサートなどでお客さんに届け、お客さんの反応を参考にしたり日々の演奏活動の中で試行錯誤を繰り返して、内容をブラッシュアップし洗練させていく過程を指して先の言葉があるのだと思います。実際にさだまさし氏の曲はCDに収録されているものと実際にライブで演奏されるものとでアレンジが大きく異なり、かつ作品としても質が向上しているものが少なからず存在します。 …あまりさだまさしの話を続けると当に上長に叱られますの

  • 工数削減!Schema.orgをパーツ化しリッチスニペットを実装する « NAVER Engineers' Blog

    皆様、お久しぶりです。 NHN Japan ウェブサービス部の「キョウ」と申します。 前回の「初心者向けschema.org講座」に引き続き、 今回は「Schema.orgをパーツ化しリッチスニペットを実装する」方法についてお話しようと思います。 「Schema.orgで実装すると時間がかかる!」 「Schema.orgの為に工数はかけられない」 そんな方にお勧めです。 目次 1. 最近のSchema.orgについて(2012年6月) 2. Schema.orgのマークアップ方法について考えてみる 3. [対応案1] <meta>と<link>のみでSchema.orgを定義する(没案) 4. [対応案2] Schema.orgマークアップ専用のTable要素を用意 5. 最速実装する為のワークフロー 6. 今日のまとめ 7. 最後に ※ Naverの業務内容とは直接は関係ござい

  • LINE Storage: Storing billions of rows in Sharded-Redis and HBase per Month « NAVER Engineers' Blog

    Hi, I’m Shunsuke Nakamura (@sunsuk7tp). Just half a year ago, I completed the Computer Science Master’s program in Tokyo Tech and joined to NHN Japan as a member of LINE server team. My ambition is to hack distributed processing and storage systems and develop the next generation’s architecture. In the LINE server team, I’m in charge of development and operation of the advanced storage system whi

  • nginxの優雅な再起動 « NAVER Engineers' Blog

    こんにちは開発チームの崔珉秀と申します。 今回はnginxというウェブサーバーについて話をさせて頂きます。 nginxは最近数年の間けっこう人気が高くなっています。特によく使われているApacheやLighttpdなどのウェブサーバーと性能の面で比較することがよくありまして、優れた性能で単純なstaticファイルを転送するウェブサーバーからCGIサーバー、reverse proxyサーバーなどの様々なウェブリクエスト処理に関わる分野で導入されています。 今日はnginxの性能の比較よりもサーバーの開発者(nginx module)もしくはサーバーの運営者としてのnginxにある仕組の中で一つを紹介したいと存じます。 サーバーの開発や運営をする場合ロジックや設定などの変更により配布の後、サーバーを再起動することがあります。 その再起動の時にウェブサービスとしてリクエストの処理を続けなが