タグ

ブックマーク / mixiengineer.hatenablog.com (23)

  • OpenStackとLXCを導入した話 - mixi engineer blog

    こんにちは、運用部 アプリ運用グループの清水です。Golang鋭意勉強中です。 今回は、SNS「mixi」に限った話ではなく、ミクシィ社全体として利用している仮想環境について紹介したいと思います。パブリッククラウドも一部のサービスで利用していますが、今回は、自社で運用している仮想環境にフォーカスして書いてみようと思います。 今まで利用してきた仮想環境 今まで利用してきた仮想環境というと、手作業で構築したKVM(Kernel-based Virtual Machine)環境が中心でした。手作業といってもある程度手軽に構築できるように、シェルスクリプトとCobblerでVMを構築できるようになっています。構築の流れは以下のとおりです。 CobblerにVMのIPやホスト名などをスクリプトで登録する。 KVMのホスト上でスクリプトを実行(koanコマンドでCobblerと連携してVMをセットアッ

    OpenStackとLXCを導入した話 - mixi engineer blog
    yyamano
    yyamano 2014/04/03
  • systemdを本番運用してわかったこと - mixi engineer blog

    こんにちは、運用部 アプリ運用グループの清水です。モンスト仲間募集中です。 以前、Fedora 8からFedora 17への移行のお話を書きました。Fedora 17ではsystemdがデフォルトで使われています。そのsystemd番環境で運用して1年以上が経ち、様々な経験をしてきました。systemdの環境で知っておくと役に立つと思われることについていくつか紹介したいと思います。 まずは、systemdの概要について簡単に紹介します。 systemdの概要と歴史 systemdは、従来のSysVinit/Upstartに代わるもので、Linuxサーバの起動時に初期設定やサービス起動をおこなうことにとどまらず、プロセスやリソースなど様々な管理をおこなうデーモンです。 Fedora 14の頃(2010年11月リリース)にTechnology Previewとして提供され、Fedora 1

    systemdを本番運用してわかったこと - mixi engineer blog
  • OAuthのセキュリティ強化を目的とする拡張仕様を導入しました - mixi engineer blog

    こんにちは. 研究開発グループ ritouです. だいぶ前の記事で紹介したとおり, mixi Platformは様々なユーザーデータをAPIとして提供するにあたり, リソースアクセスの標準化仕様であるOAuth 2.0をサポートしています. mixi PlatformがOAuth 2.0の最新仕様に対応しました | mixi Engineers' Blog mixi Platformをさらに安全にご利用いただくため, OAuth 2.0におけるCSRF対策を目的とした拡張仕様を検討, 導入しましたので紹介します. OAuth 2.0の認可フローとCSRF エンジニアの方であれば, Webサービスに対するCSRF(Cross-site Request Forgery)をご存知でしょう. CSRF攻撃とは悪意のある外部サービスへのアクセスや特定のURLへの誘導などをきっかけとしてユーザーの意図

    OAuthのセキュリティ強化を目的とする拡張仕様を導入しました - mixi engineer blog
    yyamano
    yyamano 2013/11/18
  • OpenContrailを勉強してみた - mixi engineer blog

    サービス環境における仮想ネットワーク検討して、OpenContrailは追いかける価値があるのではないかと考えましたので、その過程を書こうと思います。3行でまとめると次のとおりです。 今日時点で使えそうなゲートウエイ実装を考えたときに、OpenContrailは良い選択肢です openvswitchはL2スイッチをエミュレーションしていて、OpenContrailはルータをエミュレーションしています。 macアドレスの隠蔽やmssの調整など、openvswitchではやりづらいこともケアされています。 今日の夜、OpenStack勉強会でOpenContrailの話があるらしいので、負けじと書いてみました。 背景 現在のミクシィのネットワークの悩みはたくさんありますが、特に次の2つの悩みを持っています 大きなL2ネットワークで運用する際の一般的な悩みを抱えている 単一のサービスを動かすこと

    OpenContrailを勉強してみた - mixi engineer blog
  • Android開発の効率を今日から確実に5%改善する方法 - mixi engineer blog

    暖かくなったり寒くなったり視界が真っ黄色になったり忙しい今日この頃ですが、皆様お元気でお過ごしでしょうか。動かないことで定評のある「右の方」raiです。mixiのAndroidクライアントアプリ初回リリース以来の登場です。部署もたんぽぽグループからイノベーションセンターという謎の組織へ移りました。大変ご無沙汰しております。 今回は、ミクシィにおけるAndroidアプリ開発現場で得られた経験から、意外と見えづらい開発プロセス上のボトルネックと、それを「いますぐ」「簡単に」改善できる、素敵なサービスについて簡単にご紹介したいと思います。 はじめに さて、ミクシィもAndroidアプリ開発を始めてから2年半ほどが経ちました。 2年も経つと、結構いろんな課題が見えてきて、それらに対する解決策もいくつか生まれます。 Androidプラットフォーム上での開発そのものに関して言えば、以前のエンジニアブロ

    Android開発の効率を今日から確実に5%改善する方法 - mixi engineer blog
    yyamano
    yyamano 2013/03/14
    DeployGate
  • Androidの機種依存問題を吸収するプロジェクトAndroid-Device-Compatibilityを公開したお話 - mixi engineer blog

    こんにちは。Androidユニットで開発とスクラムマスターをしています、横幕です。すっかり寒くなって、朝起きるのが辛い季節になりました。 先日、Android(TM)の様々な機種に依存する問題を吸収するためのライブラリプロジェクトをmixi, IncのGitHubリポジトリで公開しました。 今回は、このライブラリプロジェクトを公開するに至った経緯をお話しようと思います。 様々な種類の端末に対応するために乗り越えてきた困難 現在、Androidを搭載した端末には、多種多様なものがあります。 そして、OSのバージョンごとの違いだけでなく、同じAndroidを搭載していても、端末ごとに微妙に挙動が異なることがあります。 mixi公式クライアントアプリでも、端末ごとに微妙に挙動が異なることで発生する問題にいくつか直面してきました。 特定の端末で、文字が9,000文字までしか入力できない EditT

    Androidの機種依存問題を吸収するプロジェクトAndroid-Device-Compatibilityを公開したお話 - mixi engineer blog
  • 「インタレストターゲティング」リニューアルの裏側 - mixi engineer blog

    こんにちは。下田@研究開発グループです。 前回は、かなりライトな「行って来ました」記事でしたので、今回はデータマイニング技術の活用事例の一つとして「インタレストターゲティング」という広告商品と、そのリニューアル案件についてご紹介します。 あらまし mixiには「インタレストターゲティング」という広告商品があります。まだ僕が入社する前の2009年に研究開発グループが広告の部署と協力して作成したプロダクトになります。 リリース当初は効果が高く、人気の広告商品の一つだったそうですが、メンテナンス性やオペレーション部分に問題等を抱えており、つい最近、再度広告関係の部署と協力して、バックエンドを作り直し、新しい仕組みをリリースするに至りました。 2012年12月現在、販売している広告商品としては、2009年作のプロダクトが動いていますが、間もなく切り替わる予定となっています。 以下、2009年製の今

    「インタレストターゲティング」リニューアルの裏側 - mixi engineer blog
    yyamano
    yyamano 2013/01/08
  • mixi PlatformがOAuth 2.0の最新仕様に対応しました - mixi engineer blog

    はじめまして、研究開発グループのritouです。 人々が7インチタブレットの話題で盛り上がっていた10月24日、mixi PlatformはOAuth 2.0の最新仕様のサポートを開始しました。 OAuth2.0 RFC6749へ対応しました << mixi Developer Center (ミクシィ デベロッパーセンター) その内容について紹介します。 mixi Graph APIとOAuth 2.0の進化 Webアプリ、モバイルアプリなどがmixi Graph APIを用いてユーザーデータにアクセスする際、ユーザーから許可を得る必要があります。mixiアプリやmixiページアプリからもmixi Graph APIを利用できます。認証認可と呼ばれるこの機能の実装について、今まではOAuth 2.0 draft v.10をサポートしてきました。 OAuth 2.0の仕様策定の中で、201

    mixi PlatformがOAuth 2.0の最新仕様に対応しました - mixi engineer blog
  • 絵文字だョ! 符号化文字集合(後編) - mixi engineer blog

    同僚の女性からクッキーをすすめられても、「サードパーティークッキーは拒否します」とキッパリお断り申し上げたiPhoneアプリ開発担当の七尾です。というか、どう考えてもホワイトデーの(ry さて先週に引き続き、iOS開発でUnicode絵文字を扱う際の注意点について書いていこうと思います。 Combining Character/結合文字 サロゲートペアの他にも同様に気をつけなければいけないのが、結合文字です。 アルファベットに対しての修飾文字を付けたり、数字を四角で囲ったりした文字があります。 そういった文字は結合文字と呼ばれ、iPhoneで入力できる文字でいうと、 1を四角で囲った文字 = 0x31 0x20E3 2を四角で囲った文字 = 0x32 0x20E3 というようになります。 結合文字の文字数を取りたい場合は、特定の修飾文字を読み飛ばせば良いだけなので、 以下のようにさらっと対

    yyamano
    yyamano 2012/08/03
    Combining Character/結合文字、Regional Indicator/国旗絵文字
  • Blocksを使ったHTTPリクエスト - mixi engineer blog

    聖闘士星矢Ωが、思ったより面白くて小宇宙が軽く爆発しそうなk_kinukawaです。 今回は、iOSアプリでHTTP通信を行うときの話です。 2012年4月27日 「メインスレッド上で処理している」について一部修正 従来のNSURLConnectionは、レスポンスをdelegateでハンドリングしていました。 そのため、リクエストを投げる箇所とレスポンスを受ける箇所がコード上で離れてしまい、可読性がよくありませんでした。 また、レスポンスを受け取ったあとの処理についても、delegate内で条件分けをして処理をしているうちに分岐/ネスト地獄になりがちでした。 一方、iOS5からNSURLConnectionにsendAsynchronousRequest:queue:completionHandler:というメソッドが誕生しました。 引数を見る限り、GCDを使って非同期リクエストをする系

    Blocksを使ったHTTPリクエスト - mixi engineer blog
  • なぜ @kotarok さんは mixin より extend を推すのか - mixi engineer blog

    こんにちは。最近、実は JavaScript よりも Perl が好きなたんぽぽグループの大形です。 Perl の、仕様書など無いところがたまりません。勉強しても勉強しても...。いえ、今回は Perl の話ではありませんでした。 一昨日の土曜日ですが、会社にお金を出して貰って、 SwapSkills さんの『CSSを便利に使うための LESS入門』にお邪魔してきました。 何を隠そう、いや、隠すことは何も無いのですが、私は今「クライアントサイドのバックエンド担当」として働かせていただいてます。つまるところ、デザイナさんやコーダさんが日々目の前の案件と戦い続けている中で、一歩引いたところからお助けユーティリティを作ったり、俯瞰して工程を見直してみたり、デザインにおける継続テストの仕組みを考えたり、新しく何かの役に立ちそうなものをどこからか引っ張ってきたりするお仕事です。 そんなお仕事の一環と

    なぜ @kotarok さんは mixin より extend を推すのか - mixi engineer blog
    yyamano
    yyamano 2012/02/24
  • Appleカラー絵文字文字コード表(UTF-16) - mixi engineer blog

    期末のお忙しいところ失礼致します。iPhoneアプリ開発担当の七尾です。 iOS5がリリースされてしばらく経ちましたが、iOS5の新機能のひとつである、Appleカラー絵文字についてUTF-16な文字コード表を作りましたので、お知らせ致します。 iOS Emoji - GitHub Pages テーブルの横幅が大きくなってしまったので、GitHub Pagesに乗せてしまいました。 また、画像数が多いので、GitHub Pagesで公開しているものは、カテゴリごとのhtmlに分割しています。統合版htmlはmasterブランチに入っていますので、必要な方はそちらをご利用ください。 iOS5からどこでも入力できるようになった絵文字は見た目はSoftbankのUnicode絵文字ですが、実体はAppleカラー絵文字(Unicode6互換)に変わっています。 ちなみに従来のSoftbank Un

    Appleカラー絵文字文字コード表(UTF-16) - mixi engineer blog
  • 詳細 ECMA-262-3 第8章 評価戦略 - mixi engineer blog

    全国20人の ECMA セオリストのみなさま、おつかれさまです。大形尚弘です。 ついに Dmitry 先生の ES3 シリーズも最終章となりました。この後に ES5 シリーズが5章続きますが、それらは基的に今シリーズの補足として書かれたものですので、ここまでお読みいただいたみなさまは、ほぼ ECMAScript の理論的側面を理解したと言えます。 もしそうでない部分があったとしても、実際に ECMAScript の仕様書をご覧いただければ、これまでとは全く理解度が違っていて、あっという間に足りない知識を補足できると思います。端的に、「仕様が読める」ようになっているはずです。 ES5 であれば、PDF である仕様書を、有志の方が es5.github.com にて「注釈付きの」 HTML 形式で公開し、頻繁に更新されています。注釈の一つはもちろん我らが Dmitry 先生の ES シ

    詳細 ECMA-262-3 第8章 評価戦略 - mixi engineer blog
  • 詳細 ECMA-262-3 第6章 クロージャ - mixi engineer blog

    おつかれさまでございます。東洋大学柏原選手の好きな声優は花澤香菜さんですが、株式会社ミクシィ大形選手の好きな声優は五十嵐裕美さんです。お世話になります。 さて、 Dmitry 先生の ECMA-262-3 シリーズもついに山場、クロージャの章へとやって参りました。「 JavaScript はクロージャが使えて強力」「 JavaScript 理解のキモはクロージャ」などといった売り文句や脅し文句を耳にされたことは無いでしょうか。クロージャがなぜ強力なのか、そしてそれはどのような仕組みに基づくものなのか、これは ECMAScript だけに留まらず、一般的な意味でクロージャを理解できる名章です。どうぞお時間のある時に、気持ちを落ち着けて、ごゆっくりご覧ください。 詳細 ECMA-262-3 シリーズ 第1章 実行コンテキスト 第2章 変数オブジェクト 第3章 this 第4章 スコープチェーン

    詳細 ECMA-262-3 第6章 クロージャ - mixi engineer blog
  • 詳細 ECMA-262-3 第5章 関数 - mixi engineer blog

    あけましておめでとうございます。おつかれさまでございます。先日渋谷の、会社から徒歩5分のところにお引っ越しをし、今年は仕事に燃える、声優では五十嵐裕美さんが好きな、大形尚弘です。 さて、 ECMAScript のセオリストを目指す人々を甘く誘い、そして悟りか眠りのどちらかに確実に到達させる伝説的名著、 Dmitry 先生の ECMA-262-3 シリーズも第5章となりました。今回は関数がテーマです。 今回もまた伝説的に長くなっておりますので、気持ちが落ち着いているとき、時間のあるときに、ごゆっくりお読みいただければ、これまで正確な理由を知らず自分なりのベストプラクティスとして使っていたような書き方に明確な理由付けが与えられ、自信を持った JavaScript 生活につながっていくと思います。それではどうぞ。 詳細 ECMA-262-3 シリーズ 第1章 実行コンテキスト 第2章 変数オブジ

    詳細 ECMA-262-3 第5章 関数 - mixi engineer blog
  • 詳細 ECMA-262-3 第4章 スコープチェーン - mixi engineer blog

    どうもおつかれさまでございます。大形尚弘でございます。先日、 tumblr developer meetup 2011 に参加させていただき、「リブログのこの快感をどのようにサービスに取り入れるか」についてご参加の皆様と熱い議論を交わしたのですが、20時を過ぎた辺りで全員「そろそろ早く帰ってリブログしたいな...」という気持ちになりましたためスッと解散になったのが印象的でした。 ちなみに、「たんぽぽグループ」は実在いたします。みなさんの心の中に...。 というわけで、 Dmitry 先生の ECMA-262-3 シリーズもいよいよ中盤、スコープチェーンについてご一緒に勉強させてください。 詳細 ECMA-262-3 シリーズ 第1章 実行コンテキスト 第2章 変数オブジェクト 第3章 this 第4章 スコープチェーン 第5章 関数 第6章 クロージャ 第7章1節 OOP: 概説 第7章2

    詳細 ECMA-262-3 第4章 スコープチェーン - mixi engineer blog
  • 詳細 ECMA-262-3 第3章 this - mixi engineer blog

    どうもおつかれさまでございます。たんぽぽグループの大形尚弘でございます。好きな言語は Dylan です。好きな声優は五十嵐裕美さんです。 さて、週刊のはずが月刊になってしまった、 Dmitry 先生の ECMA-262-3 シリーズの第3章をお送りします。文中、未だ訳出の終わっていないスコープチェーンや関数の章への参照がありますが、特にスコープチェーンにおいてこの時点である程度理解しておきたいとお感じになる方もいらっしゃるかと思います。その辺りは、以前私個人のブログで翻訳・公開させいただいたコア・JavaScript ( JavaScript. The Core. )でも簡単に触れられておりますので、適宜ご参照ください。 また、章とは全然関係ないのですが、先日 JavaScript Advent Calendar 2011 (オレ標準コース)に参加させていただき、 ECMAScript

    詳細 ECMA-262-3 第3章 this - mixi engineer blog
  • Android開発のちょっとしたお話 - mixi engineer blog

    こんにちは。新卒入社で今年から働き始めました、横幕です。現在は、mixiのAndroid(TM)版公式クライアントアプリを開発しています。 Android開発を始めてから数か月になりますが、今回は、開発に携わる中で知ったことをご紹介したいと思います。 レイアウトの複雑さで発生するStackOverFlowError Androidでは、見た目(UI)のデザインやレイアウトをXMLで記述することができます。XMLを書くときには、UIのパーツ(ウィジェット:ボタンやチェックボックスなど)のほか、ウィジェットの配置を決めるためのコンテナ(LinearLayoutやFrameLayoutなど)を用います。そして、それらを入れ子にしながら画面を設計していきます。 たとえば、以下のような感じに。 * main.xml <?xml version="1.0" encoding="utf-8"?> <Li

    Android開発のちょっとしたお話 - mixi engineer blog
  • Flash?いいえ、HTML5です: ファイルのドラッグ&ドロップによるフォトアップロード機能について - mixi engineer blog

    はじめまして。コミュニケーションサービス開発部の澤と申します。コーヒーカレーをこよなく愛する新卒2年目の新米エンジニアで、弊社Webのフロントエンドを主に担当しています。最近はmixiスマートフォン版(mixi Touch)の開発にも精力的に取り組んでいます。 さて、日はPC版のmixiで1つの機能をリリースいたしました。ファイルをWebブラウザにドラッグ&ドロップするだけで写真をmixiフォトにアップロードできるもので、HTML5 File API※1を採用しています。記事ではこの機能について色々とお話をしたいと思います。 なにこれ? 以下では、ドラッグ&ドロップによるアップロード機能を「機能」と呼びます。 百聞は一見にしかずです。機能のプロモーションムービーがありますので、まずはこちらをご覧ください。 動画では下記を説明しています。 従来のアップロード方法からドラッグ&ドロッ

    Flash?いいえ、HTML5です: ファイルのドラッグ&ドロップによるフォトアップロード機能について - mixi engineer blog
    yyamano
    yyamano 2011/02/25
  • mixi大規模障害について その2 - mixi engineer blog

    こんにちは。システム技術部たんぽぽGの森です 補足を追記しました (2010/08/20 15時) 先日のmixi大規模障害についての続報です 今回は小ネタはありません はじめに まず初めにtwitter/blogなどを通じて今回の問題の解析を行っていただいたみなさんに感謝の言葉を捧げたいと思います kzk_moverさん stanakaさん mala(bulkneets)さん llameradaさん (順不同) ありがとうございました 書き漏らした人ごめんなさい memcachedはすごい 今回の件でmemcachedに対して不安感を持たれた方もおられるとお聞きしました 説明不足だったせいで誤解を与えてしまい申し訳ありません きちんと設定および監視を行っていれば通常の使用にはまったく問題はありません 弊社にて -c 30万で起動したmemcachedに対して、先のテストスクリプトに

    mixi大規模障害について その2 - mixi engineer blog
    yyamano
    yyamano 2010/08/20