タグ

ブックマーク / techblog.kayac.com (13)

  • カヤック流ソーシャルアプリの作り方 インフラ編 - KAYAC engineers' blog

    入社4年目にもなってtech.kayac初登場のせいです。 ブログ書けプレッシャーにとうとう屈する時がきました。 これで夢にkyo_agoが出てうなされなくてすみます。(彼はtech.kayacの尻たたき担当でした) 先々月「ぼくらの甲子園!熱闘編」というゲームをモバゲー内にてリリースしました。 これは去年リリースした「ぼくらの甲子園!」の続編です。 モバゲーユーザの方、是非遊んでみてください。 今回はこの「ぼくらの甲子園!熱闘編」がどういうインフラ構成になってるか紹介したいと思います。 注) 題名に「カヤック流」とはつけましたが、カヤックでは多様性を善としている風潮があり、 ゲームによってインフラの構成が違うどころか、利用しているプログラミング言語すら違います。 なので全てのゲームがこのような構成になってるわけではありません。 前提 今回のインフラ構成を決めるに至って考慮した点は「ラクに

    カヤック流ソーシャルアプリの作り方 インフラ編 - KAYAC engineers' blog
  • 安全なバッチ処理の作り方 - KAYAC engineers' blog

    このまえ登り坂の途中でロードバイクのタイヤが破裂しました。ながたです。 今回はバッチ処理について書いてみようと思います。 バッチ処理? Webサービスの処理開始条件は、大まかに次の2つに分けることができます。 ユーザーのアクションに起因するもの ユーザーのアクションに起因しないもの このうち後者の処理をバッチ処理が担当することになります。 バッチ処理の担当分はさらに、 特定の条件(時間やサービスの状態)で実行するもの 手動で実行するもの の2つに分けられます。 今回はこの「手動で実行するもの」について書きたいと思います。 バッチを手動実行するのはどんなとき? バッチ処理を手動で実行するのは、十中八九イレギュラーな状況が発生したときです。 ルーチンワークや実行の条件が決まっているものは何らかの方法で自動化できるはずです。 そしてイレギュラーな状況のほとんどは不具合が発生したとき。 つまり 重

    安全なバッチ処理の作り方 - KAYAC engineers' blog
  • vimプラグインでよりよいコーディングを - KAYAC engineers' blog

    こりなくvimプラグインの紹介をします。北原(@soh335)です。 たかが、エディタですがプログラムを書く際には一番触っている道具です。イチローも道具は大切にすることが重要と言ってますし、メンテナンスしながら良い状態にしておきたいですね。 今回はvimプラグインの管理、プログラム書く自体には関係ないけど便利なプラグイン、実際にエディタを使っている際に便利なプラグインの紹介をします。 vimプラグインの管理 vim-pathogen http://www.vim.org/scripts/script.php?script_id=2332 vimプラグインは、windows環境はで$HOME/vimfiles/、mac等では$HOME/.vimのディレクトリの下にインストールしていきますが様々なプラグインを一つのディレクトリにいれると のようになり例えばこのプラグインが更新されたのでアップデ

    vimプラグインでよりよいコーディングを - KAYAC engineers' blog
    TMTL
    TMTL 2010/10/29
  • Firebugの意外と知られていない機能紹介(プログラマ向け) - KAYAC engineers' blog

    羊毛布団を洗濯機にかけられないことを知りました。ago(@kyo_ago)です。 意外と知られていない機能が多い!?Firebugの使い方を見て、プログラマ向けも欲しくなったので書いてみました。 1. ショートカット一覧 以下のページでFirebugのショートカット一覧が公開されています。 http://getfirebug.com/wiki/index.php/Keyboard_and_Mouse_Shortcuts 取り合えず以下の二つだけでも覚えておくと効率的かもしれません。 F12でFirebugの有効、無効の切り替え 広いコマンドラインモード時にCtrl+Enterでコードを実行 また、以下のメニューからショートカットの変更も行えるので、他の拡張等とショートカットがかぶった場合でも別のキーで使用することが出来ます。 2. Firefox体のツールバーに「要素を調査」ボタン Fi

    Firebugの意外と知られていない機能紹介(プログラマ向け) - KAYAC engineers' blog
    TMTL
    TMTL 2010/08/01
  • 今更聞けないcanvasの基礎の基礎 - KAYAC engineers' blog

    はじめまして。新入りのnagataです。 入社式で自転車乗ってた野郎です。 先輩方から「ブログ、書いてね!」とのお達しがあったので、 日報で書いたらウケがよさげだったcanvasのことについて書いてみようと思います。 ※各種サンプルはMac上のSafari4.05、Firefox3.6.3、Chrome5.0で動作を確認しています。 canvasってなんぞ? 図を書き込めるhtml要素です。 OpenGLやDirectXのような面倒な設定を書くことなく、 手軽にグラフィック描画が行えます。 ブラウザだけでローカルアプリケーションのような グラフィカル(かつ動的な)表現が行えるわけです。 とりあえずつかってみる 早速何か描いてみましょう。 こういうことは実践あるのみです。 処理にはJavascriptを使います。 canvasに描画を行うときは、canvas要素からcontextを取得して、

    今更聞けないcanvasの基礎の基礎 - KAYAC engineers' blog
  • javascriptプログラマのレベル10 : tech.kayac.com - KAYAC engineers' blog

    週末料理をしていて足を切ってしまいました。agoです。 以前Perlは書いていたんですが、その頃以下の記事を読んで非常に感銘を受けました。 Perlプログラマのレベル10 - Perlプログラミング救命病棟より - naoyaのはてなダイアリー 当時あまりコミュニティとのつきあいがなかったので、「自分のスキルの絶対位置」、「次のレベルへ行くために必要なもの」を知ることで非常に安心感を感じた記憶があります。 いま確認したところ、「JavaScriptプログラマのレベル10」はないようなので書いてみました。 Perlプログラマ Schemeプログラマ Rubyプログラマ (家に直接リンクできるURLが無かったため、参照ページへリンクしています) haskellプログラマ 堕落したCプログラマ HTML知識レベル プログラマレベル 企業法務 JavaScriptの業務スキルレベル 判別表 (5

    javascriptプログラマのレベル10 : tech.kayac.com - KAYAC engineers' blog
  • GoogleAppEngine + JRubyでクリスマスまでに彼女をつくる方法 - KAYAC engineers' blog

    こんにちは。typesterの陰謀によりVimmerはモテないというデマが流れておりますが、残念ながらそれがデマだということを身をもって証明できないでいるVimmerの外村です。 先日、お悩み相談の記事がホットエントリーに入ったら彼女ができるという噂が立ち、何を間違えたかホットエントリーに入ってしまったのでどうしようかと思ったのですが、プログラマたるもの問題があればプログラムで解決すべきだろうと考えました。 というわけで彼女を作ってみました。どういうものかというと、 僕だけに定期的につぶやく 僕のリプライだけに反応してリプライを返してくれる まさに僕だけのボット彼女です。今回はこれをGoogleAppEngine+JRubyで実装したので、環境をつくるところか実際に動かすところまで説明します。 1. 環境をつくる まずはGoogleAppEngineのアカウントがないと始まらないので以下か

    GoogleAppEngine + JRubyでクリスマスまでに彼女をつくる方法 - KAYAC engineers' blog
    TMTL
    TMTL 2009/12/10
  • vimに欠かせない3つのプラグイン - KAYAC engineers' blog

    Ark Advent Calendar で、今回こそPerlデビューをもくろんでいるアルバイトの北原です。 僕は普段エディタにvimを利用しています。巷では高まるvim熱のはずなのですが、社内ではEmacs派の方々が大半で、さらにvimを使っているともてないという話まで出てきています。この悲しい現実を打破すべく普段vimを使っている方にも、使ってない方にも、これから使おうと思っている方にもオススメできる3つのプラグインを紹介したいと思います。 1. quickrun.vim quickrun は編集中のファイルの全体もしくは一部を実行する Vim プラグインです。 実行するためのコマンド |:QuickRun| が提供されます。 quickrun.vim help 概要より引用 quickrun.vimはthinca氏によるプラグインです。同名のプラグインをujihisa氏が以前から公開さ

    TMTL
    TMTL 2009/12/03
  • 「入門 GIT」が神本である件。 git 利用者だけでなくすべての開発者が読むべき本 - KAYAC engineers' blog

    ども。自分のサイトを復旧させるのが面倒なため会社のブログにのレビューまで乗せようという魂胆の村瀬です。 週末に「入門GIT」を読んだのですがこのは git ユーザーはもちろんのことその他すべての開発者が必読のだなぁと感じたので紹介しておきます。 このです。 このは現在の git の開発者でありメンテナーである濱野氏によって書かれた git の入門です。 ただの入門にあらず しかし入門だから最初はよくあるようなチュートリアルのような記事からはじまるのだろうと思っていると最初から面らいます。 最初に書かれているのは git がどのようにデータを記録し、どのように履歴をたどれるようになっているかというまさに git 自体の基が書かれているのです。 僕個人は二年近く git を使用してきているため自分の知識の確認のような感じで読み進められましたが、初めての方はすこしむずかしいか

    「入門 GIT」が神本である件。 git 利用者だけでなくすべての開発者が読むべき本 - KAYAC engineers' blog
    TMTL
    TMTL 2009/10/27
  • lighttpd で X-Reproxy-URL ヘッダを使えるようにするモジュール mod_reproxy を書いた - KAYAC engineers' blog

    ウェブアプリケーションにおいて、認証がかかっている画像や大きなファイルを配信する場合には、Perlbal 等でサポートされている X-Reproxy-URL ヘッダが有効なことが知られていて、その理由としては、 (メモリを大いする) アプリケーションサーバのプロセスを転送終了まで占有しない HTTP ベースの分散ファイルシステムとリバースプロキシが直接交信するので、ネットワーク負荷が低い といった点が挙げられます。「でも、Apache は X-Reproxy-URL ヘッダをサポートしてないんだよねー」という話が、先日の YAPC::Asia 2009 においても話題になっていました[要出典]。回避策としては、ワンタイムURLのような手法もあるのですが、セキュリティな懸念もあります。 何とかしたいと思っていたのですが、lighttpd 1.4.x 系では fastcgi や proxy

    lighttpd で X-Reproxy-URL ヘッダを使えるようにするモジュール mod_reproxy を書いた - KAYAC engineers' blog
  • javascriptで名前空間を有効活用する方法 - KAYAC engineers' blog

    社内の煎り大豆ブームの火付け役。agoです。 今日はjavascriptで名前空間を有効活用する方法をご紹介したいと思います。 1 無名関数の即実行 無名関数をその場で実行することで名前空間を閉じることができます。 (function () { // hogeはこのfunction内のみ参照可能 var hoge = 1; })(); また、newを使用した方法でも実行可能です。 new function () { // hogeはこのfunction内のみ参照可能 var hoge = 1; }; それぞれ違いは以下の通りです。 ()() thisがwindow returnしたものをそのまま受け取れる new thisが空Object Object以外をreturnした場合this 引数を渡す場合、それぞれ以下のようなかたちで渡す事が可能です。 (function (arg1, arg

    javascriptで名前空間を有効活用する方法 - KAYAC engineers' blog
  • jQueryを使い始めたときに感じる13の疑問 : tech.kayac.com - KAYAC engineers' blog

    来週は私が夏休みなので更新はない予定です。agoです。 最近、人にjQueryを解説する機会があったので、昔を思い出してjQueryを使い始めた頃に感じる疑問を書いてみたいと思います。 1 そもそも何で使うの?いまでも困ってないよ 作成する内容にもよりますが、慣れると使用しない場合に比べて記述するコード量が3分の1程度まで減ります。 また、変数、条件分岐、繰り返しが減るのでバグが発生しにくくなります。 2 何か特殊なことができる? 結局できることは変わりません。 jQuery自体JSで書かれてますし、記述の自由度もJSの制約に制限されます。 3 何が難しいの? 文法がややjQuery的になります。 参考 jQuery言語入門 jQuery自体のコード量は少ないのですが、独特の記述法が多く慣れるまで多少時間がかかるかもしれません。 また、CSS Selectorの知識はほぼ必須です。 特にマ

    jQueryを使い始めたときに感じる13の疑問 : tech.kayac.com - KAYAC engineers' blog
  • jQuery言語入門 : tech.kayac.com - KAYAC engineers' blog

    先月の社員PVランキングは91番目でした。agoです。 たまに他言語開発者から「JSは何となくわかるけど、jQueryが特殊すぎてよくわからない」という声を聞きます。 個人的にjQueryを使う場合、「JSの中でjQueryを使う」と言うより、「jQueryの中でJSを使う」と考えた方が理解しやすいと思うので、今日は"jQuery言語"の書き方を紹介したいと思います。 文法 Traversing methodでインデントを下げて、.end()でインデントをあげます。 (Traversing以外のmethodはインデントを維持します) そして、末尾には開始行と同じ位置に「;」を置きます。 $('body') .find('a') .filter('.permlink') .attr('href', function () { return $(this).attr('href').repla

    jQuery言語入門 : tech.kayac.com - KAYAC engineers' blog
  • 1