タグ

ブックマーク / kray.jp (12)

  • DocBaseの同時編集機能を実現しているアルゴリズム – KRAY Inc.

    はじめに 皆さんはGoogleドキュメントやHackMDを使ったことはあるでしょうか。これらのツールは「ネット越しに同時に複数の人で1つのドキュメントを編集できる」という特徴を持っています。お互いの編集がリアルタイムに反映されるので、相手が何を書くのかを意識することなく、簡単にドキュメントを複数人で編集することができます。これを実現するためには、同時編集に参加しているユーザ全員の編集内容がネットワークの延滞に影響されることなく、それぞれの編集内容をうまい具合にマージして反映してくれるような賢いアルゴリズムが必要になります。今回はこのアルゴリズムに関して書きます。 編集内容のマージとは 編集内容をうまい具合にマージしなければいけないケースを考えてみます。 AさんとBさんが次のドキュメントを同時編集するとします。最初は、お互いブラウザ上では次のように見えています。当然、この状態ではお互いに見え

    DocBaseの同時編集機能を実現しているアルゴリズム – KRAY Inc.
  • Git初心者に捧ぐ!Gitの「これなんで?」を解説します。

    はじめましてこんにちは、今年新卒でKRAYに入社しました亀井と申します。 会社のみなさんからは「あさちゅん」と呼ばれております。どうぞよろしくお願いします。 突然ですが、みなさん使ってますか? Git。 KRAYではバリバリ活躍してるGitですが、 「よくわからない……」と頭を抱えてる方も多いですね。 わたしも抱えてます。 正直、KRAYに入社するまでターミナルを使ったことすらなく、 Gitも入社してから使いだしたので初心者もいいところです。 そんなわたしが1日約200回×3ヶ月ターミナルでGitコマンドを打ち続けて やっとわかってきた、Gitの「これなんで?」を解説します。 主にGit初心者、Gitについて理解を深めたい人向けです。 もくじ なんでcommitする前にaddしなきゃいけないの? ブランチってなんのために分けるの? HEADってなんなの? 消したファイルもコミットしなきゃい

    Git初心者に捧ぐ!Gitの「これなんで?」を解説します。
    tknzk
    tknzk 2013/09/04
  • 軽量高速Webサーバのnginxで静的コンテンツ配信とキャッシュコントロール

    nginxとは? nginxロシアで開発されている軽量で高速なWebサーバです。 現在シェアは 7% 近くあるようです。もちろんApacheに比べれば少ないですが、Apache 55%、IIS 25%, nginx 7%で3番目に使われているWebサーバになります。 昔は、Pound+Lighttpd+Apacheの組み合わせをよく使っていましたが、ここ数年はnginx+Apacheとかになりました。 主に、静的コンテンツをnginxが受け持ち、PHPなどの動的コンテンツはApacheに渡す形になります。Railsを使う場合は、nginx+Unicornの組み合わせが多いです。 いまさらな感じもありますが、インフラ周りの見直しも含めて紹介したいと思います。 静的コンテンツをnginxに任せる nginx+Apacheの場合の設定は次のようになります。(nginxがport 80、Apac

    軽量高速Webサーバのnginxで静的コンテンツ配信とキャッシュコントロール
    tknzk
    tknzk 2011/02/12
  • WordPressを100倍速くする! MySQLの調整やnginx proxy cache | KRAY Inc

    [追記1] 最後で説明しているproxy cacheの設定を修正しました。 [追記2] nginx proxy cacheでキャッシュしない場合の処理を変更しました。 [追記3] スマートフォンや携帯で閲覧した時にキャッシュしない設定を追加しました。 はじめに 大げさな題名ですが、今回はWordPress単体を速くするのではなく、データベースやWebサーバなどの調整、またnginxのproxy cache機能を使って速くする話になります。 サイトの構成によっては、proxy cacheは使えないかもしれませんが、使わなくても5倍程度速くすることはできましたので、参考にしていただければと思います。 今回行うチューニング一覧 DBを最適化するプラグインを導入する APCを導入してPHPを速くする MySQLを速くする 重いWordPressプラグインを外す nginx+FastCGIにする W

    WordPressを100倍速くする! MySQLの調整やnginx proxy cache | KRAY Inc
  • やさしいMacBookProの育て方 - SSD+HDDで快適生活

    Air、Airって…… 新型MacBookAirをケーキ入刀用に買おうとしてるけどお金がないみなさんこんにちは。 少し前まで周りもネットもAirが速い、Airが軽いと浮かれまくりです。噂によると相当快適だとか。社内でも2人が購入しています。なんだよそんなにソリッドステートがいいのかよ、そんなに軽いのがいいのかよ、でも買い換えるカネなんてねぇよ、と騒ぐ人々を横目で見る毎日でした。くそー。 MacBookAirに対抗したい! このまま我慢してモッサリMacBookPro を使っていくのも腹立たしく、Airのサクサクさだけでも手に入れたい!ということで、目の前のMacBookProのHDDをSSDに載せ替えてみることにしましょう。 注意事項 当方では作業結果に責任を負いません! この記事を読んで実行した結果発生するいかなる結果に対しても弊社は責任を負いません。ご自分の責任の下で作業を行ってくださ

    やさしいMacBookProの育て方 - SSD+HDDで快適生活
  • iPhoneアプリ開発におけるデバッグのTIPS

    2011-2-28 NSLogの出力を分りやすくするを修正しました。 新型MacBookAirをケーキ入刀用に買おうとしてるみなさんこんにちは。ダニーです。 iPhoneアプリ開発をしてるとメモリ周りで落ちることがあってデバッグするのが大変ですね, 今回はデバッグについて紹介したいと思います。 CGRectの中身を表示する CGRect rect = CGRectMake(13, 30, 100, 200); NSLog(@"%f %f %f %f", rect.origin.x, rect.origin.y, rect.size.width, rect.size.height); NSStringFromCGRectを使うと簡潔になります。 CGRect rect = CGRectMake(13, 30, 100, 200); NSLog(@"%@", NSStringFromCGRec

    iPhoneアプリ開発におけるデバッグのTIPS
    tknzk
    tknzk 2010/12/26
  • はじめてgitをつかったのでコマンドを復習します

    はじめに こんにちは川崎です。最近はじめてgitを使う機会がありましたので復習してみます。 このエントリーは私がgitを使い始めたばかりのログを元にして、まとめた内容にしています。 gitをインストール、コマンドを使う準備 gitを使うにはgitのインストールが必要です。使っている環境に合わせてgitをインストールします。 私の環境はmacなのでportsでインストールしました。 $ sudo port -d selfupdate $ sudo port install git-core +gitweb +svn インストールが完了したかどうかはgit --versionコマンドで確認できます。 $ git --version git version 1.7.3 gitのversionが表示されたのでインストールされているようです。準備完了です。 はじめてgitを使うときは gitを使うた

    はじめてgitをつかったのでコマンドを復習します
    tknzk
    tknzk 2010/10/31
  • Rails3でどう書けばいいかわからない時、参考になる7つのURL

    はじめに Rails3.0.0がリリースされて、2ヶ月(2010年10月末現在)。皆さんRails3ライフを満喫していますか? Rails3がはじめてという方、マニュアルやリファレンス探しに苦労されていませんか? Rails3でコードを書いていると、どうかけばいいのかな?ということもしばしばあって、自分なりに参照するサイトなどがまとまってきたので、今日は自分が参照する順番に、URLを晒していきます。少しでも参考になれば幸いです。 もくじ Rails Searchable API Doc Google – Search by date Rails 3 Ropes Course Railscasts – rails-3.0 episodes Ruby on Rails Guides Github – Search: rails3 example O’REILLY – Rails3 in a N

    Rails3でどう書けばいいかわからない時、参考になる7つのURL
  • iPhone アプリ開発で使える Framework の作り方

    もりやまです。前回は iPhone / iPad アプリ開発で使える Objective-C のライブラリをいくつか使ってみました。 今回は、自分で作ったライブラリを Framework として使う方法をご紹介します。 ライブラリ用にプロジェクトを準備する 新規プロジェクトで、iPhone OS の Library から「Cocoa Touch Static Library」を選択します。 プロジェクトを作ると以下のような状態で生成されます。ここでは「KrayKit」という名前で作りました。 まずは不要なファイルの削除と、ファイルシステム上のプロジェクトのディレクトリ構成を整備します。 Classes を削除 Include, Resources, Sources を作成 次に、Xcode 上でプロジェクトの構成を整備します。 Classes を削除 Foundation.framewor

    iPhone アプリ開発で使える Framework の作り方
    tknzk
    tknzk 2010/10/11
  • BackupライブラリでプロジェクトのバックアップもD.R.Y化しよう

    はじめに こんにちは芳賀@func09です。 何かプロジェクトをリリースする時、必ずといっていいほど必要なのはデータの定期バックアップですね。 必ずといっていいほど必要なのに、必ずといっていいほど忘れがちで、後回しにされがちで、 リリース前に「あ、バックアップのバッチ処理書かなきゃ・・」みたいな感じで、毎回同じようなシェルスクリプトを書いてませんか?僕はそんな感じです。 バックアップだってD.R.Y(Don’t repeat yourself)ということで、サクっと労力をかけずに終わらせたいなぁと思っていた時に見つけたのがBackupという名前のGemです。そのまんまですね。 Backup(RubyGem)とは? Backup( http://github.com/meskyanichi/backup )はRubyで書かれたUnixとRails環境のためのライブラリです。 データベースの内

    BackupライブラリでプロジェクトのバックアップもD.R.Y化しよう
    tknzk
    tknzk 2010/10/11
  • [Rails]ビューキャッシュにTokyoTyrantを使ってHTMLを高速に表示する

    はじめに 今回はRailsをTokyoTyrantでビューキャッシュする方法についてです。 Railsのキャッシュ機能には、オンメモリ、ファイル、drb、Memcacheから好きなストレージを選んで利用することができます。高速で永続性可能なKeyValueストアのTokyoTyrantをプロジェクトで採用することも多いので、ビューキャッシュにTokyoTyrantを使えないか試してみました。 TokyoTyrant http://fallabs.com/tokyotyrant/ TokyoTyrantのインストール TokyoTyrantがまだインストールされていない場合は、各環境に合った方法でインストールしてください。 Macの場合 % sudo port install tokyotyrant or … % brew install tokyotyrant CentOSの場合 % su

    [Rails]ビューキャッシュにTokyoTyrantを使ってHTMLを高速に表示する
  • モダンブラウザで使う「Geolocation API」前編

    (2011/04/15 追記) 広義の HTML5、狭義の HTML5 について追記しました もりやまです。 最近比較的余裕があるので色々調べたりしているのですが、今回はブラウザの位置情報取得機能(Geolocation API)について調べてみました。 携帯端末では昔から結構使われていましたが、今回調べてみたところ、ほとんどのモダンブラウザが対応していることがわかりました。 というわけで、ここにまとめてみます。 Geolocation API とは ホストデバイスに関連する地理的な位置情報へのスクリプトによるアクセスを提供する API です。 ザックリ言ってしまうと、ブラウザ上で動く JavaScript から現在の位置情報を取得するためのAPI の仕様、ということです。 W3C で策定中の規格で、現在は最終草案(Last Call Working Draft)の段階です。 よく「HTM

    モダンブラウザで使う「Geolocation API」前編
    tknzk
    tknzk 2010/07/20
  • 1