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

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

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

    DocBaseの同時編集機能を実現しているアルゴリズム – KRAY Inc.
    masa-wo
    masa-wo 2017/11/15
  • コア技術とスキルアップ

    はじめに ソフトウェアに限らず、開発を事業にする組織は競争力強化のためにコア技術を持つ必要があります。一方、エンジニアは自分の市場価値を保ち高めるために、常に新しい知識をつけスキルを磨かなければなりません。エントリではこの両者の関係を整理し、組織の競争力強化とエンジニアのスキルアップに対するKRAYの取り組みを紹介します。 コア技術 コア技術とは、複数の商品に利用できる、組織の構成員に蓄積されたある分野の知識のことです。例えば、ある家具工房に曲げ木細工のできる職人さんがいて、様々な曲げ木の家具を販売していたら、その工房にとって「曲げ木」はコア技術です。まずコア技術について少し説明します。 企業の競争力 企業が存続するには、顧客に価値を提供し、代金や報酬を得なければなりません。さらに、殆どの場合は競合する企業がいますので、その中から選ばれる必要があります。つまり競争力を持たなければならない

    コア技術とスキルアップ
    masa-wo
    masa-wo 2016/03/22
  • Electronを使ってJavaScriptでデスクトップアプリを作る

    はじめに こんにちは。デスクトップアプリケーションを手軽に作りたいと思ったことはないでしょうか? 普段Webアプリケーションを開発している場合、 デスクトップアプリケーションを作ろうとすると、開発言語やライブラリがWebアプリケーションとは違うので、別な知識が必要になるのと複数のプラットフォームで動くものを作ろうとすると大変ですね。 そこで、今回はWebアプリケーションのKPTBoardのJavaScriptCSSのコードを一部流用と修正して、Electronで動かしてみました。 Webアプリケーション版のKPTBoardと違う点 今回はWebアプリのデスクトップクライアントアプリではなくて、単体で動くデスクトップアプリとして作ってます。 複数人には対応してないです。 投稿した内容は、データーベースではなくてアプリのlocalStorageに保存されます。 Electronとは http

    Electronを使ってJavaScriptでデスクトップアプリを作る
    masa-wo
    masa-wo 2015/11/17
  • ReactとFluxでクライアントサイドの設計

    はじめに こんにちは。皆さんはReact使われてますでしょうか? 今回はReactとFluxについて書きます。 MVCの問題点 詳しくはこちらに書いていますが、MVCでアプリを作った場合は、ModelとViewの間で双方向のデーターフローが作られる可能性があるので理解したりデバックするのが難しくなります。 React単体で使った場合の問題点 子のViewでなにかアクションを起こした結果、親のViewにも変更を伝えてなににかをする場合、子のViewに親のViewのコールバック関数を渡す必要があります。 子のViewの下にさらに、子のViewがあって、アクションが起こった時に親のViewに伝えようとするとコールバックが深くなって複雑になってしまいます。 Flux それを解決できる方法としてFluxです。 Fluxを使うとデーターフローが一方向になります。 やってることはObserverパターン

    ReactとFluxでクライアントサイドの設計
    masa-wo
    masa-wo 2015/11/04
  • 小さなメモから始めて、チームを育てる DocBase の先行登録を開始

    弊社で開発している新サービスの先行登録を開始しました。 小さなメモから始めて、チームを育てる情報共有サービスです。 DocBase https://docbase.io 5つの特徴 DocBaseには情報共有を活発にする5つの特徴があります。 すごく簡単にメモを投稿できる 小さなメモをチーム全員で育て、情報の価値を上げられる 複数のメモをまとめて情報を見やすく整理・保存できる 組織の枠を越えて情報を共有できる 強固な暗号化 料金プラン 正式リリース時に公開いたします。 先行登録予約 メールアドレスをご登録いただければ、ベータ公開前にご招待いたします。 公開前にいろいろなチームのご意見を参考に、より情報共有が活発になるようなサービスにしていきたいと思っています。 https://docbase.io 画面を一部公開!

    小さなメモから始めて、チームを育てる DocBase の先行登録を開始
    masa-wo
    masa-wo 2014/10/05
  • MVCについて考える

    はじめに こんにちは。今年の3月からKRAYに入社した阿部です。 ブログには初登場になります。 今日は、昨今のアプリケーション開発では誰もが耳にしているであろうMVCパターンを取り上げます。(以下MVCと呼びます) 開発者それぞれで理解や解釈が違っていることが多く、しばしば議論を呼び起こします。「ぼんやり」と理解したままの方も多いのでは無いでしょうか? 私もある程度、開発で実践してみるまでは、なかなか良い形でMVCを適用することが出来ずにいました。皆様のMVCへの理解を少しでもクリアに出来れば幸いです。 定義をおさらい MVCは図で示されることが多いですね。 Wikipediaを見るとMVCの典型的な相関図が掲載されています。 (Wikipedia語版 Model View Controller より) Wikipedia英語版にも掲載されているこの図ですが、かなり上のレイヤから見た考

    MVCについて考える
    masa-wo
    masa-wo 2014/08/23
  • Rails 4のturbolinksについて最低でも知っておきたい事

    Rails 4のturbolinksについて最低でも知っておきたい事 (追記)turbolinksに関するセキュリティ上の懸念について turbolinksとは、ページ遷移をAjaxに置き換え、JavaScriptCSSのパースを省略することで高速化するgemで、Rails 4からはデフォルトで使用されるようになります。 高速化は大歓迎なのですが、JavaScriptのイベントの起き方が変わるため、Rails 3までの書き方をしているとまず間違いなく問題が起きます。しかも、Rails 4ではデフォルトの機能ですので、最新版を使いたいなら必ず知っておかなければいけません。 エントリではturbolinksを使うために絶対に知らなければいけないことを分かりやすく紹介したいと思います。 動作 turbolinksの動作は、すごく大雑把に言うと以下の通りです。 リンクのclickイベントをフッ

    Rails 4のturbolinksについて最低でも知っておきたい事
    masa-wo
    masa-wo 2013/03/11
  • 1