タグ

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

  • Goでのmigrationについて ~ ddl-maker × schemalex ~ - KAYAC engineers' blog

    この記事はカヤックアドベントカレンダー19日目の記事です。 はじめに こんにちは @Konboi です。 皆さん忘年してますか? 私は今のところ順調に忘年できており、今年何をしてたのか大分忘れました。 ちなみに先日行われたカヤック技術部の忘年会の様子です。 肉がきたぞー! pic.twitter.com/w4VIdmMNmO— Masatoshi Kawazoe (@acidlemon) 2016年12月16日 忘年してます pic.twitter.com/T7EW0Z5ZVm— jigya♧kkuma (@jigyakkuma_) 2016年12月16日 ということで表題の通り、今日の記事ではカヤックでのこれからのGoプロジェクトでのmigrationについて紹介しようと思います。 記事であつかう migrationはDB更新を差し 新規テーブルの作成 テーブル/カラム名の変更 テーブ

    Goでのmigrationについて ~ ddl-maker × schemalex ~ - KAYAC engineers' blog
    kitokitoki
    kitokitoki 2017/08/16
    migration, ddl
  • Push通知のためのProvider Server「Gunfish」 - KAYAC engineers' blog

    Lobiチームの吉村です。 今回はチャットサービスの品質を高める上で重要になってくる「Push通知」について、Lobiのアプローチのひとつである「Gunfish」を紹介します。 Push通知はユーザが「自分に返信が来た」「運営からお知らせが来た」などの情報をリアルタイムに知ることができる機能で、チャットをメインコンテンツとして展開しているLobiにおいて非常に重要な要素となっています。 Gunfishは「Push通知を漏れなくすべてのユーザへ届けたい」という想いを込めて開発したアプリケーションです。 LobiのPush通知と今までの実装 Lobiのアプリでは、ユーザに気づいて欲しいイベントが発生したとき、ユーザにPush通知が届きます。例えば、 自分のコメントにレスがついたとき 自分のコメントに「ぐー(※1)」をされたとき ユーザが所属するグループ内で「シャウト(※2)」がなされたとき 運

    Push通知のためのProvider Server「Gunfish」 - KAYAC engineers' blog
  • Electron + React + Redux - KAYAC engineers' blog

    JSで書くデスクトップアプリが熱い Electron 熱いです。 Atom を始め、Qiita の Kobito や Slack など、 十分に実用できるアプリケーションが登場しはじめています。 なにかと話題のRPGツクールMVは、NW.js(旧node-webkit)ですが、これもJSで書かれていますね。 NW.js は、その他、女の子といちゃこらする系のゲームでも使われています。 JS でデスクトップアプリを書いて、うん千万売り上げるのも、もはや絵空事ではありません。 今回は、Electron と ReduxReact の組み合わせで、 デスクトップアプリを作るまでの、簡単なチュートリアルを書きます。 登場人物紹介 Electron Github が開発してる、JS でデスクトップアプリが書けるすごいやつ NW.js より活発そうですごい React Facebook 製のすごいやつ

    Electron + React + Redux - KAYAC engineers' blog
    kitokitoki
    kitokitoki 2016/02/19
    「純関数の組み合わせで State を表現すれば、waitFor いらなくね?」
  • #6 ガワネイティブアプリをつくろう!! - KAYAC engineers' blog

    ガワネイティブアプリをつくろう! こんばんは。カヤックのAdvent Calendar6日目は、@fnobiがお送りします。 最近の業務ではいけてるSDKを作るため、Javaを書いたりC#を書いたりC++を書いたりしつつ、 Webを作るのも大好きなのでJavasciptをがりがりしたりしています。雑エンジニアです。 さて今回のブログですが、専門的な話をしても、弊社のもっと専門的な人に踏み潰されそうな予感がするので、 こちらも雑な話をしようと思います。 テーマはズバリ、 ガワネイティブアプリです! ガワネイティブアプリとは ガワネイティブとは 「側ネイティブ, ガワだけネイティブ, ガワだけアプリ, ハイブリッドアプリ」: - IT用語辞典バイナリ ガワネイティブアプリとはつまり、 ガワ(外側)はスマホアプリとして書くけれど、コンテンツはほとんどWebViewっていうアプリのことです。

    #6 ガワネイティブアプリをつくろう!! - KAYAC engineers' blog
  • #5 新しい日報システムを考えた話 - KAYAC engineers' blog

    はじめに 皆様どうも。普段クライアントワークでアプリ開発をしている@ryusukefudaことデニールです。 突然ですが、日報書いてますか?毎日書くのは結構大変ですよね... ということでアドベントカレンダー5日目は新しい日報を考えて実装した話です。 やりたいこと 日報の趣旨はいろいろありますが、"何をしてたか" と "心身共に元気か" が見る人に分かればいいんじゃないでしょうか。 ということでこの2点に絞りました。 ちょっと考えた結果、 何をしてたか → 定期的にPCのスクリーンショットを撮る 心身共に元気か → 定期的にPCのウェブカメラで顔を撮る となりました。(仕事仲間なら顔をみれば何でも分かるはずです。) つまり、1日に何回か画面のスクショとその時の顔を取ってそれを日報として見てもらえば"何をしてたか"と"心身共に元気か" が分かるというものです! 実装 Macのウェブカメラをコ

    #5 新しい日報システムを考えた話 - KAYAC engineers' blog
    kitokitoki
    kitokitoki 2014/12/05
    ubuntu 使っててよかった〜
  • #22 Githubでのめんどくさい事をなくす - KAYAC engineers' blog

    このエントリーはtech.kayac.com Advent Calendar 2013の22日目のエントリーです。 こんにちは、サンタさんには給料三倍をお願いしました@hisaichi5518です。 Github使ってますか? そうですね、使ってますね。最高です。 カヤックも最近のサービスは、Githubを使って開発しています。最高です。 当然、イシューやプルリクを使って開発しているのですが、 ブラウザでイシューの新規作成画面を開くためにポチポチするのがめんどくさかったり、 ブラウザで現在のブランチのイシューを開くためにポチポチするのがめんどくさかったり、 イシューをプルリクに変えたりするのも、わざわざイシューを指定したりするのがめんどくさかったり、 イシュー番号からブランチを移動するのがめんどくさかったり、 とにかくめんどくさすぎると思ったので、そういうのを改善するスクリプトをちゃちゃっ

    #22 Githubでのめんどくさい事をなくす - KAYAC engineers' blog
  • #3 「あまりApplication cache(cache manifest)のことを甘く見ない方がいい」 Advent Calendar 2012 - KAYAC Engineers' Blog

    最近色々あってAndroidと心を通わせられるようになってきたago(@kyo_ago)です。 このエントリは tech.kayac.com Advent Calendar 2012 3日目の記事です。 Application cache(cache manifest)とは WHATWGやW3で議論されているHTML5 Offline Web Applicationの仕様の一部です。 細かい仕様等に関しては最後に参考URLをつけたのでそちらをご覧ください。 ここでは色々誤解の多いApplication cacheの使い方をご紹介したいと思います。 使い方 .appcacheの拡張子に対してtext/cache-manifestのMIMEタイプを設定してください。 .appcacheファイルは以下の形式で作成してください。 CACHE MANIFEST: #更新用ID(日付+連番等) キャッ

    #3 「あまりApplication cache(cache manifest)のことを甘く見ない方がいい」 Advent Calendar 2012 - 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
  • nginxのHttpLimitReqModuleを試してみる - KAYAC Engineers' Blog

    ※この記事はnginxの現時点での最新stable 0.8.54を使っています。 2回目の投稿になります、sugyanです こんにちは。 最近、jsdo.itでちょっとしたAPIを作ってみているのですが、連続で大量のリクエストが来るのはちょっと困るので、防御策としてnginxのリクエスト制御モジュール"HttpLimitReqModule"を導入してみることにしました。 http://wiki.nginx.org/HttpLimitReqModule 何も設定しない場合 まずは普通のnginx設定でhttpサーバを立ち上げて、動かしてみます。 worker_processes 1; error_log logs/error.log info; events { worker_connections 256; } http { log_format test '$remote_addr -

    nginxのHttpLimitReqModuleを試してみる - KAYAC Engineers' Blog
    kitokitoki
    kitokitoki 2012/02/09
    受け付けるリクエスト量の制限。api サーバで使える
  • jQueryのCSSセレクタAPIを高速に扱う方法 - KAYAC Engineers' Blog

    最近Androidとの抗争が激化しているago(@kyo_ago)です。 jQueryはCSSセレクタを多用する特徴がありますが、jQuery内では実行ブラウザやCSSセレクタの記述によって呼び出されるブラウザAPIが変わり、それによって実行速度にも影響が出ます。 この記事では「セレクタAPIとはなにか」、「CSSセレクタの記述によって呼び出されるセレクタAPIの種類」、「高速なセレクタAPIを使用するための方法」、「高速なセレクタAPIが使われるかどうか確認する方法」などを紹介したいと思います。 (※この記事はJavaScript Advent Calendar 2011 (フレームワークコース) : ATNDの1日目の記事です) セレクタAPIとはなにか セレクタAPIとは「#hoge .huga」のようなCSSセレクタから、DOM上に存在する要素を取得するためのAPIです。 jQue

    jQueryのCSSセレクタAPIを高速に扱う方法 - KAYAC Engineers' Blog
  • JavaScriptによるcross domain & streamingなAPIアクセスの方法色々 - Nakamap APIの場合 - - KAYAC Engineers' Blog

    こんにちは。すぎゃーん(@sugyan)です。 先日、Nakamap APIを公開しましたが、今回はそれをJavaScriptから使うためのライブラリを用意してみましたので紹介させていただきます。 使い方 <script type="text/javascript"http://developer.nakamap.com/js/nakamap.js"></script> とscriptを読み込むことで使用できます。 access_tokenが既に取得できていれば、 var client = new Nakamap.Client({ token: '*********' }); /* REST API */ client.get('/me', function (result) { console.log(result); }); /* Streaming API */ client.lis

    JavaScriptによるcross domain & streamingなAPIアクセスの方法色々 - Nakamap APIの場合 - - KAYAC Engineers' Blog
  • jQuery Plugin作成時の3つの注意点 - KAYAC Engineers' Blog

    実家に帰ったら犬に威嚇されました。agoです。 jQuery Pluginに関しては、以前jQuery Pluginの書き方として基的な部分をまとめたのですが、もう少し細かい部分に関して再度まとめてみようと思います。 1 $.dataの活用 以前jQuery.dataの使い方でも紹介したのですが、Pluginからelementを処理する場合対象のelementが広範囲に及ぶことが多く、Plugin内の変数の他に各element毎の変数を持ちたくなることがあります。 たとえば、「クリックする毎に順番にCSSが変わるPlugin」を考えた場合、各element毎に「今どのCSSが指定されているか」を保持できると実装が楽になると思います。 具体的には以下のような形になります。 $(function () { var colors = ['blue', 'yellow', 'red']; $('

    jQuery Plugin作成時の3つの注意点 - KAYAC Engineers' Blog
  • jQueryを読むために知っておきたい6つの知識 : tech.kayac.com - KAYAC engineers' blog

    夏休みはタイ古式マッサージセミナーに参加してきました。agoです。 先週日曜日若手IT勉強会に参加させていただき、jQueryのコードリーディングを行ってきました。 そこでjQueryのコードを読むときの基礎知識に関して簡単にまとめてみたいと思います。 1 変数の複数同時宣言と代入 まず、JSでは変数の宣言は以下のような形式で行います。 var hoge; この場合は単一の変数の宣言ですが、以下のような記述を行うと複数の変数を同時に宣言することが可能です。 var hoge, huga; また、変数宣言と同時に値の代入を行うことも可能で、その場合以下のような記述になります。 var hoge = 'test'; さらに複数の変数宣言と、値の代入は同時に行うことが可能で、その場合以下のような記述になります。 var hoge = 'test1', huga = 'test2'; jQuery

    jQueryを読むために知っておきたい6つの知識 : tech.kayac.com - 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はまだニガテで ><」というヒトでも安心して始められるのでは

  • symfony で Web API を実装するときのポイントいくつか - KAYAC Engineers' Blog

    最近はまんぐうん家にいます。 nagata (@handlename) です。 FlashやJSと連携する際には、APIを実装することになりますが、 今回は「こんなことやると実装が楽になるよ!」という小技をいくつか紹介します。 ※記事ではレスポンスの形式としてJSONを使った場合を例として用いています。 ※アプリ名を「api」、モジュール名を「kayac」として説明します。 symfonyのバージョンは1.4です。 APIのレスポンスを返すための準備 symfonyのレスポンス、そのままではレイアウトが適用されてしまいます。 HTML形式で表示されるわけですね。 APIのレスポンスとして使う場合、こんなんじゃやってられません。 view.yml でレスポンスの形式を設定してしまいましょう。 apps/api/config/view.yml has_layoutをfalseにすることによっ

    symfony で Web API を実装するときのポイントいくつか - KAYAC Engineers' Blog
  • 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を、晒してみようと、思った。 - 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
    kitokitoki
    kitokitoki 2010/07/19
    php-mode のインデント設定に関して http://gist.github.com/481443 で少し考えてみました。そのうち本気だしてもっと考えます。
  • PEARのインストール - KAYAC Engineers' Blog

    今回は、静岡支社ブログに投稿した記事を転載します。 =====以下転載 こんにちわ。静岡支社のnagayasuです。 今時にPHPっ子ならPEARを使うのはある意味当たり前になっています。ただ、いつもサーバに自分の使いたいパッケージがインストールされているとは限りません。また、サーバにインストールされているPEARパッケージを使用した場合、サーバのメンテナンスや移転に伴うトラブルに巻き込まれる可能性があります。 そこで、今日はユーザ領域へのPEARのインストールのやり方を紹介します。Linuxでコンソールでログインしている状況を想定しています。 PEARの基的な説明はここでは割愛します。詳細はオンラインドキュメントを確認してください。 http://pear.php.net/manual/ja/ PEARのインストールにはpearコマンドが必要になります。pearコマンドがインストールさ

    PEARのインストール - KAYAC Engineers' Blog
  • 別なappのroutingやpartialを読み込めるsfAppChange - KAYAC Engineers' Blog

    はじめまして。KAYAC技術部に留学中のshinoutです。 今日はsymfony1.4系で動作するプラグイン(もどき)、sfAppChangeについて紹介します。 symfonyでは異なるapp同士での共有はmodelのみに限られており、 たとえば 「backend処理だけど、front側のURLを取得したい」といったことや 「このパーツは別のappでも使いたい」といったことがあったと思います。 そんな時に便利になるのが今回作成したこのsfAppChangeです。 sfAppChangeでできること 別なappのroutingが使えて、URLを生成できる。 別なappのpartialが使える。 ダウンロード、インストール ダウンロードは以下の2つのファイルをコピペしてください。 AppChange.class.php <?php class AppChange{ private $app

    別なappのroutingやpartialを読み込めるsfAppChange - KAYAC Engineers' Blog
  • そこそこ規模が大きくても何とかなるjavascriptの設計(URL dispatcherの薦め) | tech.kayac.com - KAYAC engineers' blog

    弁当生活始めました。agoです。 以前のjavascriptの開発はサーバサイドと同じPGが開発することが多く、機能をファイル単位で分割してそのページで必要なファイルのみを読み込むと言うことが行われていました。 ただ、最近はサーバサイドとクライアントサイドの分業が進んだことや表示速度の兼ね合いもあり、単一ファイルに全体を記述しサーバサイドでは全ページでその一ファイルのみを読み込むような形になることが多いです。 単一ファイルの利点としてはサーバサイドの実装に依存せずに任意の機能を追加できることがありますが、欠点として機能毎の切り分けが難しくなると言う点があります。 jQueryを使用して$('.selector')で切り出す方法もありますが、マークアップの全体像を正確に把握できていないと不要なページで間違って実行されてしまう危険性もあります。 そこで、以下のようなJSを先に読み込み、各URL

    そこそこ規模が大きくても何とかなるjavascriptの設計(URL dispatcherの薦め) | tech.kayac.com - KAYAC engineers' blog