タグ

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

  • プログラマではありませんが、プログラマの話をさせてください - mixi engineer blog

    はじめまして。8キロのダイエットに成功しましたが、最近リバウンド気味の土戸と申します。 私は今、弊社イノベーション・センター案件である、Plannah(プランナー)のプロダクトマネージメントとマーケティングに携わっております。 先日我がチームの開発メンバーである衣川から、簡単にPlannahの紹介がありました。多くの方々に記事を読んで頂き、そしてPlannahに関心を持って頂き、大変感謝しております。日は、Plannahの話は割愛させて頂き、ちょっとしたプログラマ話(?)をしたいと思います。 私はプログラミングを職業としているいわゆる"プログラマ"ではありません。ミクシィに新卒入社した2009年からしばらくは営業マンでしたし、その後も今に至るまでサービスディレクターとして勤めてきました。少しさかのぼって、小学校の頃は当時流行っていたGW-BASICでmud gameなどを作ってみたり、大

    プログラマではありませんが、プログラマの話をさせてください - mixi engineer blog
  • 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
    Itisango
    Itisango 2013/01/22
    Androidの機種依存問題を吸収するプロジェクトAndroid-Device-Compatibilityを公開したお話
  • Apache HiveにおけるJSON連想配列処理の最適化 - mixi engineer blog

    あけましておめでとうございます. 平野啓一郎著「葬送」がようやく読み終わった技術部の石川有です.ショパンの死を題材とした内容が難解で重く,すべて読み終えるのに都合5ヶ月ぐらい掛かっていたのではないかと思います.当にとても重い内容ですが,濃厚で至福な時間を過ごせました. さて「重い」と言えば,「大規模データ解析」という言葉が頭に思い浮かびますよね.以前の記事「mixi の解析基盤とApache Hive での JSON パーサの活用の紹介」の通り,ミクシィの解析基盤として Apache Hive を利用しています. また Apache Hive で"No More 「刺身の上にタンポポをのせる仕事」 - 単純作業の繰り返しで開発者の時間を浪費しないために。"を実現するための Hive の JSON パーサを活用しています. 新年最初のエントリーは,Apache Hive で JSON 連想

    Apache HiveにおけるJSON連想配列処理の最適化 - mixi engineer blog
    Itisango
    Itisango 2013/01/08
    Apache Hive における JSON 連想配列処理の最適化
  • mixiへの認証を行ってくれる「OmniAuth-mixi」を公開しました - mixi engineer blog

    こんにちは。よういちろうです。Ruby on RailsやSinatraで作るWebアプリケーションに各種認証機能を手軽に追加できる機構として、「OmniAuthシリーズ」があります。これのmixi版を作ってみました。 OmniAuth-mixi - Github OmniAuthは、Strategyという形式で任意の認証プロバイダの実装を追加できるようになっています。OmniAuth-mixiを使うことで、OAuth2にてmixi Graph APIの認証認可を行い、People APIで認可ユーザのプロフィール情報を取得する、という処理を行ってくれます。 使い方は簡単です。Ruby on Railsの場合、まずGemfileに以下を追記します。 gem 'omniauth-mixi' 次に、config/initializers/omniauth.rbファイルを以下の内容で作成します。

  • 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
    Itisango
    Itisango 2012/11/08
    mixi PlatformがOAuth 2.0の最新仕様に対応しました
  • mixi の解析基盤とApache Hive での JSON パーサの活用の紹介 - mixi engineer blog

    こんにちは.最近ピクルス作りで精神統一をしている,たんぽぽグループ解析チームの石川有です. このブログではお馴染みのたんぽぽグループですが,"No More 「刺身の上にタンポポをのせる仕事」 - 単純作業の繰り返しで開発者の時間を浪費しないために。"というミッションを持っています.その中で解析チームは,データ解析基盤の構築,データマイニング,データ解析の社内コンサルティングを行ない技術からの改善を担当しています. 今回の記事では,mixi における解析基盤について簡単に触れたあと,その基盤における「刺身の上にタンポポをのせる仕事」をどう減らすかの2点について書きます. mixi の解析基盤 まずは解析環境について,簡単にお話します.2012-08 現在 mixi では,主な解析用のツールとしては,Apache Hadoop, Hive を利用しています.またあわせて,自分など一部の人は,

    mixi の解析基盤とApache Hive での JSON パーサの活用の紹介 - mixi engineer blog
    Itisango
    Itisango 2012/08/09
    mixi の解析基盤とApache Hive での JSON パーサの活用の紹介
  • 絵文字だョ! 符号化文字集合(後編) - mixi engineer blog

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

    Itisango
    Itisango 2012/03/31
  • 絵文字だョ! 符号化文字集合(前編) - mixi engineer blog

    先日取り上げて頂いたテック総研のインタビューでは残念ながら時間の都合で、ろくろを回す事が出来なかった、iPhoneアプリ開発担当の七尾です。いやー残念。 先日お伝えしたAppleカラー絵文字文字コード表にUnicodeコードポイント、UTF-8、SoftBankUnicodeも追加したので、お知らせします。 iOS Emoji - GitHub Pages ついでに各種変換処理なども書いたり、Unicodeの仕様を調べたりしたので、文字コードのおさらいとして、いくつかUnicode絵文字を扱う上での注意点についても、メモしておこうと思います。と思ったら結構な分量になってしまったので、前半と後半に分けてお送りします。 UnicodeSet そもそも絵文字ってどこからどこまで?という問いに答えてくれるのが、UnicodeSetです。 よく使われるものだと\p{Han}(漢字の範囲を示す)だとか

    絵文字だョ! 符号化文字集合(前編) - mixi engineer blog
  • 新社会人のためのバグレポートの基本 - mixi engineer blog

    はじめまして、品質管理部門の柿崎です。 最近、Skyrim にハマってしまい、人生一回休みになりかけています。 季節は春ということで、新社会人になられる方も多いと存じます。 新社会人が会社勤めをするようになって、初めて書くビジネス文書といえば...... そうですね!「バグレポート」ですね。 今回はバグレポートの基について書きたいと思います。 近年、開発現場ではバグトラッキングシステムが定着し、ドッグフーディングのような社内テストを行う現場も増え、テスト担当者以外の方でもバグレポートを提出する機会が増えています。そして前衛的なバグレポートによって、プログラマ達が理不尽かつ不可解なバグ地獄に叩き込まれる機会も増えています。 バグレポートは諸刃の剣です。 良いバグレポートはアプリケーションの問題を速やかに解決まで導きますが、反対にダメなレポートは現場に混乱をもたらします。 良いバグレポートを

    新社会人のためのバグレポートの基本 - mixi engineer blog
    Itisango
    Itisango 2012/03/21
  • 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 第7章2節 OOP: ECMAScript での実装 - mixi engineer blog

    こんにちは。大形尚弘です。 さて、ついに OOP の話も ECMAScript の実装に移ります。乗りに乗った Dmitry 先生が、前節を越えるボリュームを持って、日全国30人(はてなブックマークの平均による導出)の ECMAScript ファンの皆さんに襲いかかります。 正直に言って、私はもう10年以上 JScript 、 JavaScript 、 ActionScript に関わってきましたが、プロトタイプの話は、内部 Prototype プロパティが「どういうわけか」コンストラクタ関数の prototype プロパティと同じ呼び名を与えられていることを発端として、常に混乱を伴ってきました。一度理解したつもりでも、すぐに忘れてしまい、わけが分からなくなってしまうのです。 それはどういうことかというと、一度もしっかり理解していなかったからです。 この節を読めば、それが理解できます。お

    詳細 ECMA-262-3 第7章2節 OOP: ECMAScript での実装 - mixi engineer blog
    Itisango
    Itisango 2012/01/20
  • 詳細 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 第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
  • Anuenueで検索クラスタを作る - mixi engineer blog

    研究開発グループの takahi-i です. 前回 Solr を利用した検索パッケージ Anuenue を紹介させていただきました. 今回は Anuenue を利用して目的に応じた検索クラスタを構成する方法について紹介させていただきます. Anuenue (Solr) インスタンスは単体でもある程度高速に動作しますが, 大規模データ, 高い QPS に耐えるには複数のインスタンスからなる検索クラスタを構築する必要があります. Anuenue を利用してクラスタを構築するには Anuenue が提供する設定ファイルを目的にあわせて編集する必要があります. Anuenue には重要な設定ファイルが三つ存在します. これらの設定ファイルは Anuenue のインストールディレクトリ (ANUENUE_HOME) 直下の conf ディレクトリに存在します. 以下 Anuenue の設定ファイルの

    Anuenueで検索クラスタを作る - mixi engineer blog
    Itisango
    Itisango 2011/12/06
  • Sinon.JS を使った JavaScript のテスト - mixi engineer blog

    初めましてこんにちは。ソーシャルクライアント開発の tanabe と申します。 今回は?Sinon.JS を使った JavaScript のテスト方法を紹介したいと思います。 Sinon.JS って何? Sinon.JS はノルウェーのエンジニア Christian Johansen さんが書かれた、JavaScript 用のライブラリです。スタブやモック、フェイクオブジェクトの提供に特化していて、QUnit などのテスト用のフレームワークや実行環境に依存しない所が特徴です。Christian Johansen さんは?Test-Driven JavaScript Development の著者でもあり、こちらは近々翻訳版 が登場するようです。 では早速、Sinon.JS を使ったテスト手法をご紹介していきたいと思います。稿ではテストフレームワークは QUnit を採用しています。 時間

    Sinon.JS を使った JavaScript のテスト - mixi engineer blog
    Itisango
    Itisango 2011/11/17
  • ヘッドマウントディスプレイで仕事してみた - mixi engineer blog

    こんにちは、机の上が汚いといつも怒られている森@たんぽぽグループです そんなに言うなら!という訳でスッキリさせてみました。 ガジェット好きなみなさんならご存知だと思いますが、先日SonyよりHMZ-T1というヘッドマウントディスプレイ(以後HMD)が発売されました。今までもHMDが発売されてきましたが、残念ながら視野角・解像度の面で満足できるモノではありませんでした。しかし今度は違います。何と視野角45度、解像度1280x720と実用上まったく問題のないモノになっています。発表と同時に予約をしたおかげで無事発売日に入手することができたので、さっそく仕事で使って見ました。 ちまたのブログにもかかれているとおりHMZ-T1が綺麗に見えるスイートスポットはかなり狭く感じました。ピタッと決まるととてつもなく綺麗に見えますがちょっとずれるとたちまち画面端がぼやけたりします。このあたりは慣れが必要で

    ヘッドマウントディスプレイで仕事してみた - mixi engineer blog
    Itisango
    Itisango 2011/11/14
  • memcachedのaccept_new_connsがスレッドセーフじゃない件がmemcached-1.4.6で修正されたにょ - mixi engineer blog

    こんにちは、たんぽぽGの森です memcached-1.4.6がリリースされました。 mixi大規模障害の原因となった不具合が解消されているとのことなので検証してみました。 動作確認 過去のバージョンで不具合が発生することと新しいバージョン(1.4.6)で不具合が発生しないことを確認するために 負荷テストを行いました。 memcachedの設定は memcached -U 0 -u nobody -p 11222 -t 4 -m 16000 -C -c 1000 -v としました。 -l オプションを指定していないので eth0, lo の二つのネットワークI/Fに対してlistenを行う設定です。 クライアント側のスクリプトは前回と同様にmalaさん作のテストスクリプトを用いました。 ./memcachedos.pl localhost 11222 5 memcached-1.4.4の

    memcachedのaccept_new_connsがスレッドセーフじゃない件がmemcached-1.4.6で修正されたにょ - mixi engineer blog
  • Shibuya Perl Mongersテクニカルトーク #16「夏の正規表現祭り」 - mixi engineer blog

    そういえば半年ぐらいライブをしていない もりもとです。こんにちは。 先日2011.7.6に、株式会社ミクシィの7Fセミナールームにて、Shibuya Perl Mongersテクニカルトーク #16をご一緒することができました。今回のテーマは「夏の正規表現祭り」です! 株式会社ミクシィは、今年の春に原宿から渋谷の六木側に移転してきました。以前よりオフィス容積もひろくなり、セミナーを開催できるような大部屋や、コラボレーション・スペースも充実。 せっかくのこうしたリソース拡張を、ぜひとも社外のいろんなかたとの交流にも役立てたく思います。そんなところ、Shibuya.pm の @takesako さんからお声がけいただき、セミナールームとコラボルームをご提供させていただくことになりました。 おなじみ @dankogai さんの 'Dan the (Irr|R)egular Expression

    Shibuya Perl Mongersテクニカルトーク #16「夏の正規表現祭り」 - mixi engineer blog
    Itisango
    Itisango 2011/07/11
  • Apache Solr を利用した検索パッケージ Anuenue - mixi engineer blog

    研究開発グループの takahi-i です。 先日名前だけご紹介したAnuenue というツールをご紹介させていただきます。Anuenue は Apache Solr のラッパーであり、検索クラスタの構築と運用を容易にする目的で制作されました。 稿では始めに Apache Solr を選択した理由について述べ、その後、このツールを開発した背景とその目的をご紹介させていただきます。後半では実際に Anuenue を用いて検索クラスタを立ち上げます。 なぜ Apache Solr を採用したのか 昨年の秋、弊社の検索エンジンを置き換えるという計画が社内で策定され、ベースとなる検索エンジンの選定のために多くの OSS 検索エンジンを比較検討しました。このとき重視したのは一台の検索パフォーマンスと同時に、保守の容易さと、開発コミュニティの規模です。 検索エンジンの保守性に関して特に重要と考えたの

    Apache Solr を利用した検索パッケージ Anuenue - mixi engineer blog
    Itisango
    Itisango 2011/07/05
    Apache Solr を利用した検索パッケージ Anuenue
  • mixi大規模障害について 解明編 - mixi engineer blog

    こんにちは、システム技術部たんぽぽGの森です。 先日のmixi大規模障害の原因となったmemcachedの不具合の詳細な解明ができました。 再来週まで発表を見合わせようと思ったのですが、早くお伝えしたほうがいいと思いましたので公開発表致します。 memcachedとlibevent memcachedはlibeventというライブラリを使用してクライアントからの要求(接続、コマンド送信)を処理しています。 libeventを使用するにはevent_baseという構造体を用います。 main threadはmain_baseを使用します。 static struct event_base *main_base; ... int main (int argc, char **argv) { ... main_base = event_init(); ... /* enter the ev

    mixi大規模障害について 解明編 - mixi engineer blog