タグ

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

  • 開発チームでのOKR導入 | KRAY Inc

    はじめに DocBase開発チームでOKRを導入を開始しました。まだ始まったばかりですが、弊社でのOKRの決め方、運用方法を書きたいと思います。 実はこれまでに何度か会社全体で導入を試みて、開始すら出来ずに失敗に終わっていました。弊社と同様にOKRの難しさから導入を諦めたチームや組織に少しでも助けになればと思います。 OKRとは? OKRは目標(Objective)と目標達成度を測る指標(Key Results)をリンクさせ、組織と個人が向かうべき方向性とやるべき事を明確にする目標管理手法の1つです。 OKRで調べると上記のような説明が出てきます。 OKRについて説明してある良い記事がたくさんありますので、ぜひそちらを参考にしてみてください。 参考記事 Googleやメルカリも導入する「OKR」は、なぜスタートアップの成長に不可欠なのか──BEENEXT 前田ヒロ氏が語る OKRの難しいと

    開発チームでのOKR導入 | KRAY Inc
    oppara
    oppara 2018/10/26
  • DocBaseの同時編集機能を実現しているアルゴリズム – KRAY Inc.

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

    DocBaseの同時編集機能を実現しているアルゴリズム – KRAY Inc.
    oppara
    oppara 2017/11/16
  • Amazon ECSでPlantUML Serverを構築

    はじめに 先日のリリースでDocBaseはPlantUMLに対応しました。 PlantUML Serverの構築にあたりAmazon ECSを使ってみました。 PlantUMLとは PlantUMLの記法で書いたテキストから、UML図が書けるツールです。 Rubyで扱う場合は前回のブログを参照下さい。 PlantUMLのサーバをrubyから使ってみた Amazon ECSとは Amazon EC2でDockerを使う場合にDockerのコンテナを管理できるサービスです。 Dockerのコンテナが落ちた時に自動的で立ち上がる EC2で複数台構成でDockerのコンテナを扱う AutoScaling Blue-Green Deployment などをAmazon ECSを使わずにDockerを直接インストールして使った場合に自前で行うのは手間で、管理が楽になります。 詳しくはこちらに書いてあり

    Amazon ECSでPlantUML Serverを構築
    oppara
    oppara 2017/07/26
  • PlantUMLのサーバをrubyから使ってみた – KRAY Inc.

    こんにちは、浅海です。 日頃開発をしている中で、設計や実装内容を他の人と共有するためにUMLを使いたい時があります。 そんなとき、紙とペンを使って書くのが一番手っ取り早いですが、綺麗なものをデータとして作成する場合はPlantUMLを使うのがおすすめです。 PlantUMLは特別な記法で書いたテキストをUMLが描画されている画像ファイルとして変換してくれるJava製のツールで、とても簡単に様々なUMLを作成することができます。 PlantUMLの実行方法 変換する方法は2つあり、1つは変換する都度jarファイルを実行する方法があります。 ただ、この方法だと実行時のオーバーヘッドが気になるので、今回はもう1つの方法を使います。PlantUMLが公式で提供しているWebサーバを利用する方法です。このWebサーバを立てると、HTTPのGETリクエストによりPlantUMLの記法を画像ファイルとし

    PlantUMLのサーバをrubyから使ってみた – KRAY Inc.
    oppara
    oppara 2017/06/16
  • AWS LambdaでTwitterを検索!Slackに通知してエゴサの自動化 – KRAY Inc.

    こんにちは、ポケモントレーナーの浅海です。最近になってようやく「げんきのかたまり」を使える様になりました。 さて近頃AWS Lambdaというサービスの名前を聞く機会が多くあったので、どのようなものなのか調べたいと思っていましたが、ついに機会ができたので実際に使ってみました。 Lambdaとは Lambdaがどのようなサービスなのかどうかは、AWS公式のドキュメントに説明が書かれています。その冒頭部分を引用します。 AWS Lambda は、コードを AWS Lambda にアップロードすると、サービスが AWS インフラストラクチャを使用してコードの実行を代行するコンピューティングサービスです。コードをアップロードして、Lambda 関数と呼ばれる関数を作成することで、AWS Lambda がコードを実行するサーバーのプロビジョニングおよび管理を行います。AWS Lambda は次のよう

    AWS LambdaでTwitterを検索!Slackに通知してエゴサの自動化 – KRAY Inc.
    oppara
    oppara 2016/10/26
  • AWS LambdaのBlueprintを使ってCloudWatchの通知をSlackに送る

    はじめに 弊社でもプロジェクトごとにSlackを使っていて、GitHubの通知やテスト結果の通知などの開発関係の通知をSlackのチャンネルに流すということをやっています。 CloudWatch の通知も Slack のチャンネルに流せればいいと思っていたのですが、CloudWatch 単体ではその機能が無かったため、以前は amazon-cloudwatch-to-slackを使って Slack に流していました。 amazon-cloudwatch-to-slack は、CloudWatch からの通知を Slack に転送するためのものです。 それで運用してみた結果 サーバーを立てないといけないのが手間 常時サーバーを動かす必要があるでその分のコストが掛かる という問題がありました。 Lambdaを使うことで、サーバーを立てる必要がなくなったのと、Lambdaはリクエスト回数と処理時

    AWS LambdaのBlueprintを使ってCloudWatchの通知をSlackに送る
    oppara
    oppara 2016/03/24
  • 開発をスムーズに行うための、たった 2 つの AWS/IAM プラクティス

    はじめに AWS を使った開発をしていて、こんな困ったことがありました。 ○○を操作する権限が欲しいのに、IAM を操作できる担当者が捕まらなくて開発が進められない 特定のプロジェクトに関するリソースだけアクセス許可したいけど、○○にはリソースによる制限ができない マネジメントコンソールを使えるようにしようと思うと、あまり権限を絞れない これらによって、開発スピードが上がらないというのが大きな問題になりました。 さて、原因はなんでしょうか。 ○○を操作する権限が欲しいのに、IAM を操作できる担当者が捕まらなくて開発が進められない ⇒ 開発者に権限が与えられていないから、権限を持った人に頼らなければならない 特定のプロジェクトに関するリソースだけアクセス許可したいけど、○○にはリソースによる制限ができない ⇒ 開発者にアクセスさせられないリソースがあるから、開発者の権限を絞らなければならな

    開発をスムーズに行うための、たった 2 つの AWS/IAM プラクティス
    oppara
    oppara 2016/03/04
  • Apiary でモダンでインタラクティブなAPIドキュメントを作る

    はじめに ようやく待望の冬!なんですが、先日20℃を超える気温を記録しましたね。季節外れの熱気に驚きました。それに今シーズンは暖冬になりそうということで雪不足も懸念されます。まだスキーの予定も立てられてないんですけど。 さて、最近のWebサービスではAPIを公開することも珍しくないと思います。参考になるRESTfulなAPI設計もよく見られるようになりました。ただ、そのなかで分かりやすい資料、APIの実行を試しやすい環境を提供できているケースはそう多くないように思います。開発者の立場でいえば、ドキュメント整備にそこまで気を遣う余裕なんてないことが大半かもしれません。一方で、APIを利用する側からすれば最初に目を通すのはドキュメントですから、その出来不出来はAPIに対する評価にもつながります。 そういうわけで、今回はWeb APIのドキュメント環境である Apiary を使って、時間をかけず

    Apiary でモダンでインタラクティブなAPIドキュメントを作る
    oppara
    oppara 2016/01/04
  • DocBaseをIAM ロールに移行した話

    はじめに DocBaseでは新機能追加以外にも、日々いろいろな改善を行ってます。 今回はセキュリティ周りの改善として、IAM ロールに移行した話を書きます。 IAM ロールに移行した理由 IAM ロールを使うことでアプリケーション側で、認証情報を管理をする必要がなくなるのでセキュリティを高めることができます。 Amazon EC2 の IAM ロール http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html 方針 IAM ロールに移行前の状態でDocBaseでは、AWS API を利用するための gem として、 aws-sdk-ruby v1 carrierwaveでS3に画像をアップロードするのにfog を使ってました。 aws-sdk-rubyAWSが提供してるAWS

    DocBaseをIAM ロールに移行した話
    oppara
    oppara 2015/12/27
  • ReactとFluxでクライアントサイドの設計

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

    ReactとFluxでクライアントサイドの設計
    oppara
    oppara 2015/11/04
  • 受託開発しながら自社サービスを作る時に工夫したこと

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

    受託開発しながら自社サービスを作る時に工夫したこと
    oppara
    oppara 2015/11/02
  • 社内Sass勉強会を開催しました

    こんにちは、クレイの亀井です。もうすっかり秋ですね!コンビニやケーキ屋さんに芋栗南瓜のスイーツがもりだくさんでテンション上がりっぱなしです さて題に入ります。先日9月30日にクレイ社内で Sass 勉強会を開催し、CSS 設計について発表しました。そのことについて今回はブログに書こうと思います。 開催することになった経緯 数ヶ月前から社員のキャリアアップのため、『クレイ社員補完計画』が開始しました。週に4時間まで自分の好きなことを勉強する時間をとれ、2ヶ月に一度ブログや勉強会などの場で成果を発表します。 私ははじめ別のテーマにしていたのですが、いまいちモチベーションが上がらず、相談した結果 Sass をテーマに勉強会を開催することになりました。 社会人になってから2年半、スライドを制作して発表をするという経験がなかったのですが、いつか外部の勉強会で LT などしてみたいと思っていたためい

    社内Sass勉強会を開催しました
    oppara
    oppara 2015/10/14
  • git pull と git pull --rebase の違いって?図を交えて説明します! | KRAY Inc

    はじめに こんにちは、クレイの亀井です。ここ最近一気に気温が上がりましたね。顔に重点的に汗をかくタイプの私には憂な季節がやってまいりました さて、今月正式リリースしました(!) DocBase プロジェクトではクレイ外部のデザイナーの方と一緒に開発しています。SourceTree で Git を使っている方で、軽いデザイン修正などは弊社の Rails プロジェクトに直接手を加えてプルリクエストを送ってくれます。 こちらのデザイナーさんに「プルリクエストを送る際は、作業ブランチで git pull --rebase origin master してから送ってもらえますか?」とお願いすると「pull はわかるんですけど、この --rebase ってなんですか?これつけると何が変わるんですか?」と質問がきたのです。 作業ブランチで git pull --rebase origin master

    git pull と git pull --rebase の違いって?図を交えて説明します! | KRAY Inc
    oppara
    oppara 2015/07/22
    git pull と git pull --rebase の違いって?図を交えて説明します! | KRAY Inc B!
  • Fabric.jsを使ってLGTM画像を作る

    Fabric.jsという、HTML5のcanvasに使うライブラリがあります。 これは、canvas上にマウスドラッグや拡大縮小、回転などを行えるオブジェクトを描画することができるライブラリです。 Fabric.jsを使用して、画像にLGTMという文字を貼り付けるツールを作ってみました。 デモ LGTM Maker このツールを使うことにより、こんな画像が こんな風になります。 クールですね。 作り方 HTMLを用意する fabric.jsを読み込んだHTMLを用意します。 ファイルフォームとcanvasとダウンロードリンクがあります。 <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>LGTM Maker</title> <script src="https://ajax.googleapis.com/ajax/l

    Fabric.jsを使ってLGTM画像を作る
    oppara
    oppara 2015/07/10
  • CoreOSで作るローカルの開発環境

    はじめに ローカルで開発してる時にMacに直接環境を作って開発してる方が多いかと思います。 自分も前はそうしてたのですが、特定のバージョンじゃないとうまくビルドできないライブラリや特定の条件の動作環境を用意したりするのがやりずらかったので、VMのLinux上で開発するようになりました。 それに加えて最近はDocker使って複数のマシンで同じ開発環境をすぐ用意したり壊したりできる仕組みにしています。 今回はその辺のことを書きます。 CoreOSとは https://coreos.com Dockerのコンテナを動かす用途に特化したOSです。 なので、余計な機能があまり入ってなくて良いです。 VirtualBoxのインストール まず、CoreOSを動かすのにVirtualBoxをインストールします。 ここからダウンロードしてインストールします。 https://www.virtualbox.o

    CoreOSで作るローカルの開発環境
    oppara
    oppara 2015/02/16
  • MySQLで確定申告

    年が明ければ 明けましておめでとうございます。 弊社ではフリーランスのパートナーの方とお仕事させて頂く機会が多いです。かく言う私も入社する前は、半年ほどフリーランスのパートナーとしてKRAYで業務をしていました。 さて、この時期!フリーランスの方に待っているのは確定申告という厄介な強敵です。私も昨年、初めて確定申告をしました。そして、昨年の1〜2月の事業所得があるので今年も確定申告しに行ってきます。 今日は、フリーランスの確定申告をテーマにブログを書きます。会社員としてお勤めの方には少々退屈かもしれませんが、雰囲気だけでも掴んでいただける様に頑張りますので、どうか最後までお付き合い下さい。 昨年の私 もともとExcelをこよなく愛する人間だったため、昨年の確定申告ならびに帳簿作成にはExcelを使いました。 こんな感じです。 ですが、Excelで頑張るのも結構無理があり。。。 =IF($H

    MySQLで確定申告
    oppara
    oppara 2015/01/09
  • DockerコンテナをCapistranoでデプロイ

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

    DockerコンテナをCapistranoでデプロイ
    oppara
    oppara 2014/11/13
  • Web Audio APIを使ってオーディオビジュアライザを作る

    HTML5のJavaScript APIにWebAudio APIというものがあります。 これは、mp3やwavなどの音声データを扱い、エフェクトをかけたり他の音声データと合成したりと、かなり高度なことができるAPIとなる予定です。 このWebAudio APIを利用して、ファイルフォームにセットした音声ファイルの再生と同時に周波数データを取得し、棒グラフに描画してみるサンプルを作ったので解説していきます。 サンプル 作ったものを下に表示しています。 2014年10月現在、IEではWebAudio APIに対応していないので動作しません。 mp3やwavファイルを選択すると、再生と同時に棒グラフが描画されます。 別タブで開く https://kray.jp/projects/webaudio/index.html HTML index.htmlを用意しました。 ここには、ファイルのinpu

    Web Audio APIを使ってオーディオビジュアライザを作る
    oppara
    oppara 2014/10/24
  • Herokuのように簡単に使えるDockerベースのPaaS

    はじめに みなさんDocker使われてますでしょうか? 自分はDockerをよく使ってるのですが、使ってるうちにいろいろと不満が出てきました。 デプロイスクリプトとか書かないでデプロイしたい Dockerfileを書くとメンテしないといけなくなるので、書かないで使いたい 組織とかで使う場合に、それぞれが各々のDockerfileを書くことになるので、一貫性を保つのが難しい Docker単体だとImmutable Infrastructureの仕組みを自前で作らないと実現できない あんまり設定とかしなくてもRailsアプリケーションが、すぐ動かせる環境を構築したい 要するにHerokuのようなPasSを開発サーバーに建てることができればいいなと思ってたわけです。 そこでDockerベースのHerokuのようなPaaSを実現できるDokkuを試してみました。 先日DokkuをフォークしたDok

    Herokuのように簡単に使えるDockerベースのPaaS
    oppara
    oppara 2014/10/13
  • Dockerホストをプロジェクトや権限で分ける

    エントリはDockerの基礎知識を前提としています。) Dockerにはイメージやコンテナレベルのアクセス制限機能がありません。つまり、Dockerデーモンに接続できる人は誰でも、全てのイメージやコンテナを操作できます。よって、社内にDockerを使う複数のプロジェクトがあり、各プロジェクトメンバーの権限をプロジェクト内に制限したい場合、Dockerホストを分ける必要があります。今回は、そんなシチュエーションでDocker-in-DockerDockerの入れ子)を活用する話です。 なぜアクセス制限機能がないか コンテナを起動するときDockerホストの/(ルート)をマウントすると、コンテナの中からホストの全てのファイルにアクセスできます。つまりDockerデーモンへのアクセスはホストのroot権限と同等であり、イメージやコンテナレベルのアクセス制限をしても意味がありません。Dock

    Dockerホストをプロジェクトや権限で分ける
    oppara
    oppara 2014/09/04