タグ

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

  • 新卒研修の受講レポート~データベース編~ - mixi engineer blog

    17新卒エンジニアデータベース研修 今回は、XFLAG事業部 SREグループの清水さん(@isaoshimizu)によるデータベース研修で学んだことについて、新卒エンジニアの左野と坂がレポートしていきます。 ↑研修中の様子です 研修内容 講義は以下の内容で進んでいきました! - MySQLの基的な話 - データベースの基的な話 - インデックス - 負荷対策 - 運用の話 - 演習 今回は研修内容については深く掘り下げませんが、研修を受けて得られた学びと感想について私たちが感じたことを書いていきます! 今年の新卒が使ったことのあるフレームワーク 1位. Ruby on Rails 2位. Sinatra 3位. FuelPHP いきなり蛇足ですが、研修前に扱ったことがあるフレームワークについて事前にアンケートがありまして、Ruby on Railsが人気のようでした。ORMはAct

    新卒研修の受講レポート~データベース編~ - mixi engineer blog
  • PyCon JP 2016 にダイヤモンドスポンサーとして参加してきました。 - mixi engineer blog

    はじめまして、株式会社フンザの尾関と申します。 普段はチケットキャンプのサーバサイドをPython/Djangoで開発しています。 趣味はドローンでの空撮です。 エンジニアブログですが、技術的な話は特にありません。すみません。 9/21, 9/22の2日間、PyCon JP 2016という日最大のPythonistaが集うカンファレンスに参加してきました。 当社では創業時からチケットキャンプのサーバサイドをDjangoで開発しており、我々のビジネスができているのも全てPythonという存在のおかげ!という思いもありまして、その恩返しとしてダイヤモンドスポンサーとして出資させていただきました。 個人的には、2013年と2015年に一般で参加したので雰囲気は分かっていましたが、今回はスポンサーとしてブースを出す!ということでまた違った視点から参加できました。 もちろん、ブースを出すからには、

    PyCon JP 2016 にダイヤモンドスポンサーとして参加してきました。 - mixi engineer blog
  • 総行数57,000の巨大CSS群をLessに書き換えた軌跡 - mixi engineer blog

    こんにちは!フロントエンド闇祓いの Kuniwak です。 この投稿はmixiグループ Advent Calendar 2015の20日目の記事です。 今年の9月に、スマートフォン Web ブラウザ版 mixi「mixi Touch」の巨大 CSS を Less (CSS プリプロセッサー)でビルドする環境へと移行しました。 書き換えた CSS の行数は、なんと 56,725行 です。😵 ということで、今回は弊社の大規模 CSS → Less 移行事例についてお話しします。 背景 スマートフォン版 mixi は、2010年5月に始まりました。 この頃のスマートフォンは、iPhone 端末であれば iPhone 3GS、Android 端末であれば Nexus One という時期です。 また、スマートフォンの世界では、Webkit ベースのブラウザーが席巻していた時代ということになります。

    総行数57,000の巨大CSS群をLessに書き換えた軌跡 - mixi engineer blog
  • 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
  • MySQLのInnoDBでのデッドロック - mixi engineer blog

    こんにちは、mixi開発部にてアプリケーション開発をしていますyouheiです。 今回は、MySQL-5.0.45のInnoDBで連番を管理するテーブルのパフォーマンス測定をしていたのですが、その際に少し変わったデッドロック問題に遭遇しましたので、そのあたりをネタとして書いてみたいと思います。 まずは、今回使用したデータベースのスキーマは下記のようなものです。 CREATE TABLE num ( id bigint unsigned NOT NULL default '0' ) Engine=InnoDB; AUTO_INCREMENTは使用していません。 そこに1レコードだけ登録します。 INSERT INTO num (id) values (1); そして実際連番を取得する際には、 UPDATE num SET id = LAST_INSERT_ID(id+1); といったクエリを

    MySQLのInnoDBでのデッドロック - mixi engineer blog
  • 続・技術的負債の把握と改善を促すために - mixi engineer blog

    こんにちは, 先日Kansai.pmで発表させて頂いたgoccyこと五嶋@たんぽぽグループです. 今回は, 前回紹介した技術的負債の把握と改善を促すためにの続編として, 僕が作ったPerl5コードのコピペ検出器について紹介させて頂きます. はじめに 今やPerl, Ruby等さまざまな言語で, 便利なライブラリ群やフレームワークを利用できる時代になりました. これらを使うことでソフトウェアの開発コストは格段に下がり, より素早く開発することができるようになっています. しかし, 当初予定されていた機能を実装して, 「よしできたから終わり!」というわけにもいきません. 何か物を生み出せば, 必ずそれを保守・運用するコストが発生します. 開発することが便利になった今, 開発物を保守・運用することを支援するツールも求められています. ですが, 保守や運用, とりわけ保守に関して支援するツールはそ

    続・技術的負債の把握と改善を促すために - mixi engineer blog
  • mixiのサーバOS移行のお話 - 前回補足&インストール編 - mixi engineer blog

    こんにちは。新しもの好きが集まる運用部アプリ運用グループの清水です。 前回の記事では、多くの反響をいただきました。ありがとうございます。 Twitterや、はてブのほとんどのコメントを読ませていただきました。 みなさんのOSの宗派が垣間見えた気がします。 さまざまなコメントをいただいていた中で、よくある代表的なコメントについて、改めてこの場を借りてお答えしたいと思います。 2012年12月28日追記: 以下のQAにつきまして、いわゆる"ネタ"として書きましたが、誤解を招き、不適切な表現で不快な思いをされた方々へ深くお詫び申し上げます。 また、QAの一部に関わるところですが、OS標準のパッケージを否定するつもりは全くございません。 Linuxを安心して使うことができるのは、Linuxディストリビューションに携わっているデベロッパーの方々の素晴らしい活動や成果によるもの、というのが揺るぎない事

    mixiのサーバOS移行のお話 - 前回補足&インストール編 - mixi engineer blog
  • Titanium? いいえ、Triainaです。 - mixi engineer blog

    どうも、5ヶ月ぶりのブログ投稿です、佐野です。僕は2012年8月よりメッセージユニットに加わり、主にiPhone公式クライアントにおけるメッセージ機能の改修に携わっておりました。 mixi Touch(スマートフォンブラウザ版)では2012年10月より一部のユーザに向けてmixiメッセージにおけるリアルタイムコミュニケーションを実現するための新UIを提供しておりました。この機能が近いうちに mixi の iPhone版、Android 版 公式クライアントでも利用できるようになります。 (画面は開発中のイメージです) この新機能は Triaina という自社製のフレームワークによって、iPhone版・Android版共に、WEB版と共通の HTML+JS コードを利用して作られています。 こういうと「Triaina? PhoneGap や Titanium と何が違うの?」とか「Faceb

    Titanium? いいえ、Triainaです。 - mixi engineer blog
  • 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ファイルを以下の内容で作成します。

  • YAPC::Asia Tokyo 2012で発表してきました - mixi engineer blog

    こんにちは。今年新卒で入社した五嶋@たんぽぽグループです。 先日行われたYAPC::Asia Tokyo 2012で自作Perl処理系について発表してきましたので、参加経緯や発表内容、感想などについて書きたいと思います。 YAPC::Asiaに参加するのは、実は今回が初めてでした。 というのも、今までPerlを触ったことがあまりなく、興味もありませんでした。 弊社の内定を頂いてから、勉強のために書き始めたくらいです。 ですので初めに、そんな自分がYAPC::Asiaに参加するに至った経緯について簡単に触れようと思います。 ● 参加経緯 Perlは記述性に優れ、迅速な開発ができる一方、実行時の速度はそれほど速くありません。一般に、インタプリタで実行する多くのLL言語(Lightweight Language)には、JIT(Just in time)Compiler等で高速化した別実装が存在し

    YAPC::Asia Tokyo 2012で発表してきました - mixi engineer blog
  • ステージングサーバ予約アプリを自作したよって話 - mixi engineer blog

    こんにちは。よういちろうです。今日はOpenSocialなどmixi Platformの話ではなく、最近開発した「あるWebアプリ」についての話をしてみようと思います。 いつの時代も予約って大変!? このエントリを読んでいる方々の多くは、何らかのシステム開発に関わっている人が多いのではないかと思います。その規模には大小があり、エンタープライズ向け or コンシューマ向けがあり、最近ではWebアプリ or スマートフォンアプリといった区分けもあるでしょう。こういったシステム開発において、よく使われるテスト手法として「ステージングサーバの利用」があげられます。「番サーバじゃないんだけど、開発機でもない中途半端なもので最終確認する」ためのサーバ、というものですが、一般的には限りなく番環境に近い環境を準備して、環境の違いからくる不具合などを事前に解消、確認した上で番環境にリリースする、という

    ステージングサーバ予約アプリを自作したよって話 - 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
  • 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
  • 「build windows」と「Windows8」レポート - mixi engineer blog

    はじめまして、UX統括部でiOS関連の開発を行っている衣川憲治です。 現在私は、アメリカはカリフォルニア州アナハイムで行われているMicrosoft社の開発者向けイベント「build windows」に参加中です。 「build windows」は、昨年までは「Microsoft Professional Developers Conference (PDC)」と呼ばれていたイベントです。 現地時間の9月13日から16日までの4日間開催され、初日のキーノートでは「Windows8」が発表になりました。 既に公式サイトに動画が公開されています。 早速現地からイベントの詳細レポートを!と思ったのですが、既にいくつかのニュースサイトで詳しい記事が配信されています。 イベントの詳細やキーノートについてはそちらにお任せしつつ、私は開発者としての視点でレポートを書いてみたいと思います。 Windows

    「build windows」と「Windows8」レポート - mixi engineer blog
  • PHP カンファレンス 2011 のお知らせ+α - mixi engineer blog

    初めまして。今年2月に入社した、yudoufu こと亀です。よろしくお願いします。 前職ではPHPやObjective-Cでの受託開発をやっていましたが、ミクシィでは運用部のアプリ運用グループというところで運用業務を担当しています。 PHPをモリモリ使っていた関係から、日PHPユーザ会というところでよく活動しています。 mixiはご存知の通りPerlの会社なので、入社する前は、PHPerはきっと 「正規表現書けないんでしょ?」とか 「今更PHPではなくPerlの会社に来たの?」とか言って DISられんのかなPerl Mongerこわい><ってプルプルしてましたが、いい人たちばかりで、みんなやさしかったので一安心です。偏見よくないですね。 PHP DISる人がいないのはヒゲもサスペンダーもないからなのかどうなのかはよくわかりません。 さて、僕のPerlの人に対するひどい偏見の話はこの辺り

    PHP カンファレンス 2011 のお知らせ+α - mixi engineer blog
    rokujyouhitoma
    rokujyouhitoma 2011/06/10
    PHP5.3以降がきになるから行こうかなぁ。
  • Lucene Revolution 2011 に参加しました - mixi engineer blog

    研究開発グループの takahi-i です。 先日 Lucene Revolution という Apache Lucene / Solr に関する会議に参加してきました。ここでいう Lucene とは Java ベースの全文検索エンジンです。 Lucene (ルシーン) は優秀な全文検索エンジンなのですが、Lucene から実際にWebサービスで提供される検索サービスを作るのにはそこそこコストがかかります。これに対して Solr (ソーラ) は Lucene をベースにした検索プラットフォームで、簡単に検索サービスを立ち上げられるパッケージ(Webインターフェース、Spell Check機能等)を提供しています。 Lucene / Solr 共に多くの企業が提供する検索サービスで利用された実績を持ちます。 今年の Lucene Revolution はサンフランシスコで開かれ、開発者および

    Lucene Revolution 2011 に参加しました - mixi engineer blog
  • 理想の開発環境 - mixi engineer blog

    たんぽぽグループの森です。 一日の半分近くを机に座ってすごすエンジニアにとって、快適な開発環境は切実な問題です。 外界からうけるストレスを極力排除し、効率よくフロー状態にはいることと、フロー状態を長く維持することはとても重要です。 お前は今までに購入したキーボードの数をおぼえているのか?と突っ込まれてもしかたが無いキーボード遍歴を重ねましたが、KINESISに出会い キーボードに関してはまぁまぁ満足することができました。 机・椅子・マウス・ディスプレイとまだまだ欲望は果てしないのですが、今回のミクシィ社の引越しに伴い、エンジニアの机と椅子にオカムラ社のクルーズ&アトラスが選定され、机と椅子に関してもかなりの満足度を得ることができたので自慢報告します。 クルーズ&アトラスの御紹介 クルーズ&アトラスはオカムラ社が販売している低座・後傾姿勢を特徴としたパーソナルワークステーションです。 2

    理想の開発環境 - mixi engineer blog
    rokujyouhitoma
    rokujyouhitoma 2011/05/19
    うーん。微妙。フリーアドレス制でさまざまな環境から選びたいなー。一箇所に定住はむり
  • Buildbot で継続的インテグレーション - mixi engineer blog

    こんにちは。パートナーサービス部の加藤和良です。 前回、mixi における開発者テスト について説明しました。だいぶ間があいてしまいましたが、今回は、そのテストを定期的に実行する 継続的インテグレーション の仕組みを紹介したいと思います。 テストが遅い 実は、mixi のテストは「遅い」という大きな問題を抱えています。 Micheal Feathers は『レガシーコード改善ガイド』のなかで、単体テストが高速に実行できることの重要性を解き「単体テスト」を厳しく定義します。 次に当てはまるものは単体テストではない。 データベースとやり取りする ネットワークを介した通信をする ファイルシステムにアクセスする 実行するために特別な環境設定を必要とする (環境設定ファイルの編集など) 上記に該当するテストが悪いというわけではない。多くの場合において、そのようなテストを書く価値はあり、しばしばテスト

    Buildbot で継続的インテグレーション - mixi engineer blog
    rokujyouhitoma
    rokujyouhitoma 2011/04/20
    すばらしい。
  • Flash?いいえ、HTML5です: ファイルのドラッグ&ドロップによるフォトアップロード機能について - mixi engineer blog

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

    Flash?いいえ、HTML5です: ファイルのドラッグ&ドロップによるフォトアップロード機能について - mixi engineer blog
  • Android向けmixi公式クライアントを公開しました - mixi engineer blog

    はじめまして!新卒で入社した藤崎友樹です。 ...と書こう書こうと思って、うっかり 2 年半が過ぎ去ってしまいました。システム技術部たんぽぽグループの rai と申します。 Android 端末をご利用中の方へ、クリスマスプレゼント日、 Android 端末向けの mixi 公式クライアントアプリケーションをリリースしました。 Android 端末をご利用の方は、マーケットより「mixi」で検索していただくとダウンロードできるようになっています。以前のプレスリリースでは、 Android 2.2 以上対応となっていたため、残念な思いをされた方もご安心ください。 2.1 でもご利用いただけるようになっております。 日リリースのアプリでは、つぶやきと友人の最新情報の閲覧、フォトのアップロード、あとチェックインをご利用いただけます。端末に標準で用意されている写真ギャラリーの「共有」メ