タグ

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

  • MongoDBであるメリットが無くなってしまったのでMySQLに移行したはなし - KAYAC Engineers' Blog

    SREチームの長田です。 この記事はTech Kayac Advent Calendar Migration Track 1日目の記事です。 今回はLobiで使用していたMongoDBMySQLに移行したはなしです。 MongoDBを何に使っていたか DAUなどのKPIレポートや、サービスの状況を把握するための各種集計結果を保存するために使っていました。 サービス開始直後はこれらの数字を色々と試行錯誤しながら追加したり、減らしたりしていました。 頻繁な追加削除があるデータ構造を保存するために、スキーマレスなデータベースであるMongoDBはちょうどよかったようです。 (当時スキーマレスデータベースが流行っていたというのもあるでしょう) なぜ移行したのか MongoDBに保存されたドキュメントは、スキーマ管理がされていませんでした。 スキーマレスであることをいいことに、その時時によって様々

    MongoDBであるメリットが無くなってしまったのでMySQLに移行したはなし - KAYAC Engineers' Blog
  • 突撃!隣のキーボード - KAYAC engineers' blog

    Lobiチームの長田です。 このエントリはTech KAYAC Advent Calendar 2016の8日目です。 昨日は「【DockerMySQLのフェイルオーバーをdocker-composeで構築」でした。 techblog.kayac.com 今回はゆる~く眺められる内容となっております。 皆さんキーボード使ってますよね。 他の人がどんなキーボードを使っているのか気になりますよね。 今回は何人かの社員にキーボードについてアンケートしてみました。 使っているキーボードは? そのキーボードを選んだ理由は? そのキーボードを選んでよかったことは? そのキーボードを選んで失敗したことは? ひとことコメント アンケートの回答を、実際にキーボードを使っている環境の写真と合わせてまとめてみました。 では見ていきましょう! osawa-junの場合 使っているキーボードは? Happy Ha

    突撃!隣のキーボード - KAYAC engineers' blog
    inouetakuya
    inouetakuya 2018/11/02
    “そのキーボードを選んで失敗したことは?” まで書いてくれているところが有り難い
  • #22 普段からRailsプロジェクトで使っている10個の便利Gem - KAYAC engineers' blog

    この記事は tech.kayac.com Advent Calendar 2014 22日目です。 こんにちは。Rubyを書いている @yumiyon です。 今回は、Railsプロジェクトで「○○がしたい!」と思った際に、自分がよく利用するGemを機能ごとに分けて10個ほどご紹介します。日頃からRailsで開発を行なっている方は既知のものばかりかもしれませんが、Railsを始めたばかりの方や、自分のための備忘録として。 目次 Gemとは 1、画像をアップロードしたい(CarrierWave) 2、管理画面を作成したい(ActiveAdmin) 3、環境毎に定数を管理したい(rails_config) 4、crontabを管理したい(Whenever) 5、スプレッドシートにアクセス(google_drive) 6、ページャーを実装したい(kaminari) 7、非同期処理を使いたい:ジョ

    #22 普段からRailsプロジェクトで使っている10個の便利Gem - KAYAC engineers' blog
  • #10 Consulと連携するpull型デプロイツール stretcher - KAYAC engineers' blog

    tech.kayac.com Advent Calendar 2014 10日目担当の @fujiwara です。 最近書いている stretcher というデプロイツールの紹介をしたいと思います。 長いので3行で push型デプロイはホスト台数が増減しやすい環境に適さない 各種問題を解決するpull型デプロイツールを書いた Consul と連携するよ 中央ホスト配布(push)型デプロイの問題点 カヤックの自社サービスでは久しく Archer というツールを利用し、中央ホストから各デプロイ対象ホストrsync でファイルを配布する形のデプロイを行っていました。ここではこれを push 型と呼びます。 push型のデプロイは、ホスト台数が頻繁に増減する環境で以下のような問題があります。 新しくホストが起動してきた場合に、中央ホストからデプロイを行ったあとでないと (古い状態で起動してい

    #10 Consulと連携するpull型デプロイツール stretcher - KAYAC engineers' blog
  • Rubyで開発するときに入れておきたい三種のRubyGems - KAYAC engineers' blog

    「つくるための三種の神器」というテーマで続けている「777ブログウェイ」! 9日目となる日は「Rubyで開発するときに入れておきたい三種のRubyGems」と題して、定番の RubyGems を3つご紹介します。 1. bundler「bundler」は、アプリケーションが依存するgemを管理するツールです。今やgem管理のデファクトスタンダードです。 「gem install hoge」のようにコマンドで gem をインストールしていくと、あれよあれよとグローバルな領域にどんどん色んなgemが…それも複数バージョン混在していきます。そして、いずれは、このアプリケーションで必要なgemはどれだっけ…バージョンはいくつだっけ…といった具合に、どんどん依存関係が分からなくなってきます。ここで活躍するのが「bundler」です。 使い方はいたって簡単。1) bundler のインストールgem

    Rubyで開発するときに入れておきたい三種のRubyGems - KAYAC engineers' blog
  • 安全なバッチ処理の作り方 - KAYAC Engineers' Blog

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

    安全なバッチ処理の作り方 - KAYAC Engineers' Blog
  • 今日から始めるCoffeeScript - KAYAC Engineers' Blog

    こんにちは。毎年花粉症になりかけている飯塚です。 最近のNode.jsの普及などによってサーバサイドJavaScript界隈が盛り上がっています。 そんなホットなJavaScriptをラクにかつエレガントに書くためのCoffeeScriptという言語をチュートリアル風に紹介します。 何かしらのライブラリを自分で書く程度にJavaScriptで開発している人は絶対に使ったほうがいいと思います。 JavaScriptを知っていれば1-2時間程度で十分駆使できるようになります。 (2011/6/28:@m_satyr様にご指摘頂いた箇所を修正しました。) 目次 CoffeeScriptとは? インストール Hello World 構文 関数 変数展開 Objectの生成 ループ 存在チェック ヒアドキュメント thisのバインド クラス 無名関数 {var} Tips ?の使い分け 存在チェック

    今日から始めるCoffeeScript - KAYAC Engineers' Blog
  • .emacs分割のすゝめ - KAYAC Engineers' Blog

    最近ロードバイクを買いました。nagata(@handlename)です。 前回、安易にも無防備な.emacsを晒したら、我らがtypester先生に 「.emacsに全部書くのは小学生までだよね〜」(大幅に誇張あり) と言われてしまったので、早速.emacsを分割してみたいと思います! (設定ファイル群をgithubにあげました) なんで分割するの? そもそもなんで分割するんでしょうか? メリットとしては、こんなものがあります。 見通しがよくなる 環境依存の設定を切り分けられる 一部のファイルにエラーがあっても他のファイルの設定は適用される それぞれ個別にbyte compileできる 一部のエラーが全体に影響しないっていうのはいいですね。とっても。 では、実際に分割する方法を見ていきましょう。 分割してみよう 分割した設定ファイルを読み込むために、IMAKADOさん謹製のinit-lo

    .emacs分割のすゝめ - KAYAC Engineers' Blog
  • node.jsはじめました - KAYAC engineers' blog

    はじめまして! 技術部2年目のsugyanと申します。 初めてtech.kayac.comに投稿します! 先日自分のブログで書いた記事が思いのほか好評だったので、これについてもう少し詳しく書いてみようと思います。 node.js+socket.ioを使ったライブコーディングwebアプリを作ってる - すぎゃーんメモ node.jsについて 最近話題の、サーバーサイドJavaScript「node.js」。みなさん触ってみてますか? 「Google V8 JavaScript Engineによるイベント駆動の…」と、どんなものかは知っているものの実際には触っていない、という人がまだ多いような気がします。 僕も昨年の12月くらいにようやく触ってみた という程度なのですが、意外にお手軽で簡単に使えるし面白いので、 「JavaScriptはまだニガテで ><」というヒトでも安心して始められるのでは

  • 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
  • EmacsにPHPの補完を実装するマイナーモード、php-completion.elをリリースしました。 - KAYAC Engineers' Blog

    anything.elのインターフェイスを使い、EmacsにPHPの補完を実装するマイナーモード php-completion.el をリリースしました。 インストール・設定・補完のスクリーンキャストは以下です。 php-completion.el DEMO from imakado on Vimeo. 出来る事 visual studioやEclipseライクなポップアップ補完 anything.elのインターフェイスを使った補完 GNU Globalの作ったTAGSファイルから補完候補を自動収得 etags,ctagsで生成したTAGSファイルから補完候補を収得 php.netでのドキュメントの検索 インストール方法 php-completion.elのインストール方法を書きます。 スクリーンキャストと併せてご覧ください。 以下のElispが動作に必要です。anything.el,au

    EmacsにPHPの補完を実装するマイナーモード、php-completion.elをリリースしました。 - KAYAC Engineers' Blog
  • emacs lisp でよりよいコーディングを - KAYAC Engineers' Blog

    ようやく社員紹介ページができました。nagata (@handlename) です。 先日の @soh335の記事に感化されて emacs 版を書いてみました。章立てはだいたい同じになってます。 ※ elisp = emacs lisp elispの管理 auto-install.el URLから elisp を直接インストールすることができます。 EmacsWiki: auto-install.el .emacs にはこんな設定を書いておきます。 (require 'auto-install) (add-to-list 'load-path auto-install-directory) (auto-install-update-emacswiki-package-name t) (auto-install-compatibility-setup) (setq ediff-window-

    emacs lisp でよりよいコーディングを - KAYAC Engineers' Blog
  • emacsのM-!とM-|の使い方 - KAYAC Engineers' Blog

    来週ようやく夏休み!のnagata (@handlename) です。 シェルコマンドを実行したいとき、どうしてますか? emacsを使って開発する場合、 ターミナルとemacsを行ったり来たりすることはよくあると思います。 現在のディレクトリのパスがほしかったり(pwd)、 IPアドレスを調べたかったり(ifconfig)、 あるいは編集中のテキストを処理したかったり。 そんな場合、いちいちターミナルに移動して、 出力結果を確認(場合によってはコピー)して、 あらためてemacsに戻ってくるのは面倒です。 それ、emacsからできます! 往復するのが面倒ならば、すべてemacs上で完結させてしまえばいいのです。 shell-mode を使うという手もありますが、 今回はもっとお手軽な M-! (shell-command) と M-| (shell-command-on-region)

    emacsのM-!とM-|の使い方 - KAYAC Engineers' Blog
  • .emacsを、晒してみようと、思った。 - KAYAC Engineers' Blog

    最近確実に左手小指が強化されてきました、nagataです。 さてさて、今回は.emacs紹介というベタなテーマです。 いいんです。自分はまだやってないんで。 とりあえず、マイ.emacsの全貌はこちら。 Mac OS X 10.6上のemacs23で使ってます。 せっかくなので上から解説していきますよ! 基的に、.emacsに書いてる内容→解説、の順です。 解説、というか一言コメント 初期設定 (let ((default-directory "~/.emacs.d/site-lisp/")) (setq load-path (cons default-directory load-path)) (normal-top-level-add-subdirs-to-load-path)) お決まり。 elispがつまったディレクトリを指定しています。 normal-top-level-add

    .emacsを、晒してみようと、思った。 - KAYAC Engineers' Blog
  • 1