タグ

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

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

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

    DocBaseの同時編集機能を実現しているアルゴリズム – KRAY Inc.
  • DockerコンテナをCapistranoでデプロイ

    開発環境と運用環境の差異 Railsアプリの開発をMacでしている人は多いと思います。しかし番では大抵Linuxマシンで運用するため、実行環境の違いから問題が発生することがあります。特にサードパーティ製ライブラリやツールを使う場合、MacLinuxで同じ動作をする保証はどこにもありません。また、開発にLinuxマシンを使っていたとしても、番と全く同じ構成で開発するのは難しいでしょう。 Dockerを使うと開発から運用まで同じ環境を使え、しかもハードウェア仮想化よりも遥かに軽量です。そこで、私が今KRAYで担当しているプロジェクトでは開発から番まで全ての環境でDockerを使えるようにしました。 それぞれの環境で解決すべき課題がありましたが、今日は番環境にデプロイする仕組みを紹介します(KRAYでインテグレーション環境と呼ばれる環境についてはDockerホストプロジェクトや権限で

    DockerコンテナをCapistranoでデプロイ
  • 受託開発しながら自社サービスを作る時に工夫したこと

    はじめに クレイはWebシステムやスマートフォンアプリなどの依頼を受けて開発をする受託開発を事業の柱としています。新事業として、DocBaseという情報共有サービスを開発、運営しています。 自社サービスやスマートフォンアプリの開発に何度も挑戦し、失敗と改善を繰り返しながら工夫したことをご紹介したいと思います。 これまで開発した自社サービスやスマートフォンアプリ 「受託開発会社が自社サービスに挑戦する」というのはよくある話ですが、弊社もこの8年間、様々な自社サービスに挑戦してきました。 公開せずに開発途中で断念したものを含めると、全部で11プロジェクトあったようです。 iPhoneアプリ x 4(公開 3) Webサービス x 7(公開 4) iPhoneアプリの総ダウンロード数は318,000、総売上は19,460ドルでした。 Webサービスは次のように寂しい感じですが少しずつ成長が見られ

    受託開発しながら自社サービスを作る時に工夫したこと
  • [Amazon EC2] AMI をゼロから作る CentOS 6.2 / S3-Backed 版

    まえがき もりやまです。 今回は、一昨年の 7 月に弊社サイトをリニューアルして、サイトのアクセス数が大分増えるよりも前に書いた EC2 の AMI を作る記事を、CentOS 6.2 ベースでやってみようと思います。 少し長いですが、お付き合いください。 はじめに 公式の手順は「From a Loopback – Amazon Elastic Compute Cloud」にあります。 基はこの通りなのですが、如何せん Fedora Core 4 を使った例なので、最新の OS で作るにはそのままでは使えませんのでご注意ください。 CentOS 6.2 のベースである RHEL6 は、rpm パッケージのペイロードが xz 形式で圧縮されるようになったため、RHEL5 以前の rpm では展開することができません。 そのため AMI のビルド環境は、xz 形式のペイロードを展開できるバー

    [Amazon EC2] AMI をゼロから作る CentOS 6.2 / S3-Backed 版
  • rails3 + html5 canvasでお絵かき投稿サイトを作ろう!

    はじめましてこんにちは。 KRAYアルバイトの浅海です。 html5のcanvasを使ってお絵かき投稿サイトを作ってみようと思います。 初めてブログ記事を書くということで気合が入りました。 ちょっと長めですがお付き合い下さい。 機能 お絵かき投稿サイトの必要最低限な機能って? ざっと下のような機能を入れてみます。 絵を描ける 絵を消せる 描画を一回分戻れる 線の太さを変えられる 線の色を変える 絵を投稿できる 投稿された画像の一覧を表示できる → 完成見はこちら完成見の公開は終了致しました。 絵を描ける HTML5のcanvasにマウスの軌道に線を引いていくわけです。 canvasでのマウス軌道の描き方は、 ・mousemoveイベント発生時に点をプロット という手段が真っ先に思い浮かぶと思いますが、これは、以下の様になります。 これではお話になりません。 なので、点ではなく線を引くこ

    rails3 + html5 canvasでお絵かき投稿サイトを作ろう!
  • Titanium Mobile開発で参考になる5つのURL

    はじめに 最近Titanium Mobileで開発をはじめましたダニーです。こんにちわ。 今回はTitanium Mobile開発でよく分からないことを調べたりするのによく使ってるサイトを紹介したと思います。 Documentation Guides Appcelerator Wiki http://wiki.appcelerator.org/display/guides/Home/ 開発元のドキュメントです。ここは読んだほういいと思います。 Titanium Mobile 1.6.0 API Documents http://tidocs.com/mobile/latest/ Titanium MobileのAPIを検索できます。http://railsapi.com/みたいに検索できて使いやすいです。 Titanium MobileのAPIの実装がどうなってるかはiPhoneだとTit

    Titanium Mobile開発で参考になる5つのURL
  • そろそろnode.jsについて一言書いておくか | KRAY Inc

    はじめに 毎年サーバーサイドJavaScriptが流行ると言ってるみなさんこんにちはダニーです。 ということで、node.jsをはじめてみました。 Twitter Streaming APIで取得したデーターをWebSocketで 接続したクライアントに出力するデモを作成したので紹介したいと思います。 今回のデモについて 今回作成したデモは node.jsのHttpClinetでTwtter Streaming APIでTwtterからデータを取得して、 node.jsのWebSocket Serverでそのデータを接続してきたWebSocket対応ブラウザに送信するということを やっています。 Twitter Streaming APIで取得できるようにする。 動かすのにhttp-basic-authが必要です。 npm install http-basic-auth streaming

    そろそろnode.jsについて一言書いておくか | KRAY Inc
    lizy
    lizy 2011/02/14
    驚きのコードの短さ
  • 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
  • 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アプリ内課金(In App Purchase) アプリへの組み込み

    はじめに あまのです。 「iTunes Connectへの登録」から一ヶ月が経ってしまいましたが、今回はアプリへの組み込みについて書きたいと思います。 最近、Wall Calendar LiteというGoogle Calendarのスケジュールを壁紙にするアプリにも組み込みましたので前回のブログを見直すこともできました。 App Storeへのアクセスの流れ アプリ内課金はStore KitというAPIを利用して、App Storeとやり取りを行います。 具体的にGood Choiceの「機能制限を解除」ボタンが押された時のコードを元に説明します。 流れとしては次のようになっています。 「機能制限を解除」ボタンを用意 アプリ内課金が許可されているかを確認 プロダクトの取得処理を開始 プロダクト情報をApp Storeから取得 プロダクト購入処理を開始 プロダクト購入処理結果の取得 購入完了

    実例でみるiPhoneアプリ内課金(In App Purchase) アプリへの組み込み
  • iPadで楽しめるWebサイト 14選

    iPad、使ってますか……? iPadが国内で発売されてから4ヶ月が経ちました。サイズが半端、思ったより重い、iPhoneで用が済む……などなど使いあぐねている人をチラホラ見かけます。 せっかく買ったiPad、使わないのはもったいないということで、iPadで見やすいWebサイトを集めてみました。iPhoneの画面サイズに最適化されたサイトだったり、逆にPCじゃないと見にくかったりといったものを外して、iPadだと特に見やすかったり、iPadならではの利点があるサイトに絞っています。 ニュース Google News http://news.google.com 特にiPad向けに最適化されているというわけではなさそうですが、ゴチャゴチャしてないのがいいですね。ランドスケープで見るのがオススメ。 asahi.com動画ニュース http://video.asahi.com 朝日新聞の動画ニュ

    iPadで楽しめるWebサイト 14選
    lizy
    lizy 2010/10/01
  • 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 の作り方
    lizy
    lizy 2010/09/10
    なんという面倒くささ
  • 1