タグ

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

  • Rails+PostgreSQL+Apartmentでたった1行の変更がレスポンスタイムを3倍速にした話 - KAYAC engineers' blog

    こんにちは! Tech KAYAC Advent Calendar 2023 11日目を担当する荒賀(@ken39arg)です。 在籍期間15年と弊社の中でかなり古参になってしまった私ですが、アドベントカレンダーを年に2書くのは初めてです。1 今回の内容は、今年7月に無事に成功したお仕事の話で、完了したらブログに書くように言われていたものです。 が、どうしても筆が進まず、のらりくらりと逃げていたのですが、良い年越しをするためにいい加減書いておくか〜という内容です。 TL;DR Rails + PostgreSQL + Apartment という構成のサービスで下記の1行の設定変更コミットを取り込んだ結果・・・ $ git log -n1 -p 64b39f258e9adde2e55752e4f1d5b6be12bcb216 commit 64b39f258e9adde2e55752e4f

    Rails+PostgreSQL+Apartmentでたった1行の変更がレスポンスタイムを3倍速にした話 - KAYAC engineers' blog
    gfx
    gfx 2023/12/12
  • 2022年、カヤックは ISUCON 12の出題を担当しています - KAYAC engineers' blog

    みなさんこんにちは〜! 技術ブログではとてもお久しぶりの acidlemon です。 さて、今年もISUCONの季節がやってきましたね。 ISUCONは、ざっくりいうとLINEが主催する、Webアプリケーションのスピードアップコンテストです。「いい感じにスピードアップコンテスト」なので略してISUCONという感じです。詳しくは 公式サイトを読んでもらうのがよいですが、毎年カヤックもコンテストの参加者だったり出題者だったり優勝者だったりといった形で関わっております。 これまでの開催と、今年の開催はどのような感じになっているかというと… そういえば公開情報をまとめてみた。 過去11回まででISUCONに参加された方は延べ9207名、そのうち優勝経験者は21名。最多優勝は @sugyan @fujiwara の4回でタイ記録。 #ISUCON pic.twitter.com/jFFTtUXHn

    2022年、カヤックは ISUCON 12の出題を担当しています - KAYAC engineers' blog
    gfx
    gfx 2022/06/03
  • 2021年サーバーサイドのエンジニアが使ってよかったもの10選 - KAYAC engineers' blog

    こんにちは! Tech KAYAC Advent Calendar 2021 7日目を担当する荒賀(@ken39arg) です。 カヤックのエンジニアブログには2008年にPHPを使ったガラケー関連の記事を書いたのが最初になります。 それから10年以上たち、ガラケーも弊社でのPHPプロジェクトもほぼなくなり、メンバーもかなり入れ替わり、私自身も20代だったのがついに40歳になりました。そんな私にとってこのアドベントカレンダーは私は今でもここにいるよというPingのような役割になっているため、年に一度若者に混じってアドベントカレンダーに参加しております。 例年ですと、趣味のマラソンなどに関する実績も書いているのですが、昨年同様、今年も続くコロナ禍により多くの大会が中止となったためこちらに関しては特に特記すべき実績はありません。ただ2020年に走るはずだった東京マラソンは権利は移行を続けてお

    2021年サーバーサイドのエンジニアが使ってよかったもの10選 - KAYAC engineers' blog
    gfx
    gfx 2021/12/07
  • 退職してもなおミームとして生き残り続ける社員がいる - KAYAC engineers' blog

    この記事は Tech KAYAC Advent Calendar 2021の5日目の記事です。 こんにちは、バックエンドエンジニアの @commojun です。昨年のアドベントカレンダーでは、6年続いているサービスのPerlのバージョンを5.16から5.30にアップデートさせようとしたときの話を書かせてもらってりしていました。 最近は、絶滅危惧種Perlエンジニアのために、#Perlから逃げるなというハッシュタグを流行らせたいなーと思っています。 愛されキャラとは ところで皆さんの身の回りには、愛されキャラと呼ばれるような人はいるでしょうか?仕事場や学校など、身近に愛されキャラがいると、場の空気がとても良くなりますよね。そんな愛されキャラとはどんな特徴を持っているのでしょうか? 雑にググってみると、例えば以下のような特徴を持っていることがわかります。 人に優しい 素直 寛容 たまに天然 弊

    退職してもなおミームとして生き残り続ける社員がいる - KAYAC engineers' blog
    gfx
    gfx 2021/12/05
    いい話や…。
  • Test::MoreからTest2::V0に移行した話 - KAYAC engineers' blog

    ソーシャルゲーム事業部のサーバサイドエンジニアの飛鷹です。 これはカヤックアドベントカレンダーの10日目の記事です。 今回は担当している案件でのTest2::V0を導入した話をします。 Test2導入経緯 担当している案件でperl 5.24からperl 5.26へのアップデート予定があり、バージョンを上げるのであればYAPC::Fukuokaで話のあったテスト結果がいい感じになると噂のTest2へと移行しようという試みでした。 Test2導入 Test2以前にもTest::SimpleやTest::Moreがあったように、Test2にも Test2::Bundle::ExtendedOld name for Test2::V0 Test2::Bundle::MoreALMOST a drop-in replacement for Test::More. Test2::Bundle::Si

    Test::MoreからTest2::V0に移行した話 - KAYAC engineers' blog
    gfx
    gfx 2020/12/07
  • GoのDBライブラリと俺たち、それからsqlla - KAYAC engineers' blog

    年末ですね。カヤックでは360度評価の時期でもあるので、みんな振り返りだとか内省などの言葉がいたるところで飛んでいます。この記事でも今年の出来事を振り返りしてみたいと思います。どうも、ソーシャルゲーム事業部ゲーム技研の谷脇です。 この記事はTech KAYAC Advent Calendar 2019 Migration Trackの20日目の記事です。19日目はAWS Lambda Node.js runtime の EoL に疲れたので Go にしていっている話でした。 この記事のあらまし あるWebサービスを作るプロジェクトORMを切り替えた 開発言語はGo言語 DBライブラリ/ORMgithub.com/xo/xoを使っていました ですが開発途中から、私が作成したライブラリであるgithub.com/mackee/go-sqllaに乗り換えました どっちもコード生成系だけれど、

    GoのDBライブラリと俺たち、それからsqlla - KAYAC engineers' blog
    gfx
    gfx 2019/12/23
  • AWS Lambda Node.js runtime の EoL に疲れたので Go にしていっている話 - KAYAC engineers' blog

    SREチームの藤原です。Tech Kayac Advent Calendar Migration Track 19日目の記事です。いよいよ年も押し詰まってきましたね…! AWS Lambda、使ってますか?最近はサーバーレスという文脈で取り上げられることも多い Lambda ですが、カヤックではそこまでサーバーレスにこだわることはせず、主にイベントドリブンな処理に適切なユースケースに使用しています。 Lambda のリリース当初に用意されていたランタイムは Node.js のみでした。カヤックで最近使うことが多い言語である Go, Ruby のランタイムがサポートされたのが比較的最近だったということもあり、Node.js の Lambda function が比較的多く存在している状況でした。 Node.js EoL (End of Life) ところで、技術基盤チームのリポジトリで「La

    AWS Lambda Node.js runtime の EoL に疲れたので Go にしていっている話 - KAYAC engineers' blog
    gfx
    gfx 2019/12/19
    "最近2年に3回、Node.js Runtime EoL の issue が起票されています" / これはなー。
  • デーモン管理をdaemontoolsからsystemdに移行させる - KAYAC engineers' blog

    SREチームの竹田です。Tech Kayac Advent Calendar Migration Track 9日目の記事になります。 カヤック社内では デーモン管理ツールとしてdaemontoolsが愛用されてきました。 ソフトウェアとして枯れており、 自動起動や各シグナルを送ることができるので大変重宝されています。 経緯 AmazonLinux1のEOLに伴い、稼働中のアプリケーションを移行させる必要がでてきました。 最近はコンテナ(ECS)へ移行させる事がほとんどですが、運用やアプリケーションの都合上AmazonLinux2へ移行させる場合もあります。 デーモン管理としてdaemontoolsを利用する事も考えましたが、ドキュメントの整備状況やインストールに難があることもあり、systemdに変更する事にしました。 設定 systemdの詳しい説明は省きますが、 以下のような設定ファ

    デーモン管理をdaemontoolsからsystemdに移行させる - KAYAC engineers' blog
    gfx
    gfx 2019/12/09
  • ホストのプロビジョニングを Chef から mitamae へ移行した - KAYAC engineers' blog

    SRE チームの藤原です。Tech KAYAC Advent Calendar 2019 Upgrade/Migration track 6日目の記事です。 今日は長らく EC2 などのホストのプロビジョニングに利用していた Chef を、mitamae に移行したお話です。 Chef とその管理 Chef といえば、Infrastructure as a Code という概念を広めた先駆者ともいえるソフトウェアです。Ruby DSL でホスト上のファイルやパッケージなどの様々なリソースを宣言的にプロビジョニングできる、界隈では大変おなじみの奴ですね。 カヤックでも自分が入社した2011年から Chef によるプロビジョニングを行ってきて、もう8年になります。 多くのプロジェクトではアプリケーションとは切り離した、その名も "chef" という名前の GitHub リポジトリにコードや設定

    ホストのプロビジョニングを Chef から mitamae へ移行した - KAYAC engineers' blog
    gfx
    gfx 2019/12/06
    すごい。
  • 地味にヤバい、シェーダ変数の精度について - KAYAC engineers' blog

    画面写真をクリックするとサンプルのWebGLビルドに飛びます。 こんにちは。技術部平山です。 今日はシェーダでの精度指定について、地味なお話をいたします。 詳しいことに興味がなければ、 非常に簡潔にまとめられた記事 をLIGHT11さんが書いてらっしゃいますので、それを読めば足ります。 なお、この記事の結論を一言で言えば、「UVと位置にhalfを使うな」 です。 速度や電力も大事ですが、下手に攻めてバグる方が問題です。 サンプルのソースコードはgithubに置いてありますが、 今回に関してはサンプルを動かしていただけば十分かなと思います。 より詳細を知りたい方はご覧ください。 冒頭の写真について 冒頭の写真は、仮にシェーダでの浮動小数点数の精度が低かったらどんなことが起こるか? をシミュレートしたものです。 絵の左下がテクスチャ座標(UV)が(0,0)で、右上がだいたい(5,5)です。 右

    地味にヤバい、シェーダ変数の精度について - KAYAC engineers' blog
    gfx
    gfx 2019/08/30
    "Unity公式の「シェーダーのデータ型と精度」 に書かれているように、シェーダにfloatと書いたりhalfと書いたりした時に、 実際どれだけの精度があるかは完全に機種依存です"
  • ISUCON8本戦出題記というよりぶっちゃけ工数感どうなの?って話 - KAYAC engineers' blog

    こんにちは! サーバーサイドサイドエンジニアの荒賀です。 普段はソーシャルゲーム事業部でゲームの開発したり、Lobi事業部でコミュニティサービスの開発をしたりしています。 さて、この度ISUCON8の戦問題の出題を担当させていただきました。 問題に関する解説は公式のブログを書きましたのでこちらを御覧ください。 ISUCON8 選問題の解説と講評 こちらでは技術的なことは置いておいて、業務としてどのようにISUCON8に関わってきたかを書き残しておきたいと思います。 (※カヤックの出題はISUCON3でもしており今回が2回目です。) はじまり (2017/12〜2018/2) だいぶ曖昧な記憶ですが、ISUCON7で優勝させていただいた直後の打ち上げの場で、僕の耳元で941さんが「来年はカヤックさんどうですか〜(ニヤニヤ)」と囁いてきたので、とりあえずニヤニヤで返したことを覚えています。

    ISUCON8本戦出題記というよりぶっちゃけ工数感どうなの?って話 - KAYAC engineers' blog
    gfx
    gfx 2018/10/29
  • 中〜大規模なSPAを開発する時に抑えておきたい10のポイント - KAYAC engineers' blog

    こんにちは。カヤックのSPAおじさんこと島津です。 今年はReactVueを使ったSPA開発プロジェクトをいくつか担当してきたので、そこで得た知見の総まとめをしたいと思います。 ※ ここでのSPAとはすべてのViewをJavaScriptで書くWebアプリのことを指します。サーバーサイドMVCを主軸にViewの一部をReactVueで書くこともありますが、今回はそのケースではありません。 1. フレームワーク 数年前とは事情が変わり、 フレームワークを使わないという選択肢は昨今だともう無いでしょう。丸腰のJSでDOMを弄っていた時代に比べると、かなり安定したフロントエンドの開発ができるようになりました。 人気フレームワークの台頭になっている React + Redux Vue + Vuex をこの1年使ってきましたが、書き方は違えどFluxアーキテクチャ・仮想DOM・コンポーネント志向

    中〜大規模なSPAを開発する時に抑えておきたい10のポイント - KAYAC engineers' blog
    gfx
    gfx 2017/12/25
  • ISUCON7でチームMSAが優勝しました! - KAYAC engineers' blog

    先日行われたISUCON7。 カヤックエンジニアで構成されたチームとしては「MSA」と「fujiwara組」の2チームが戦出場を果たし、 「MSA」が見事優勝しました! ISUCON7 選ありがとうございました。優勝はチームMSAの皆さんでした!是非ブログ書いていただければと思いますので宜しくお願いします! #isucon pic.twitter.com/JYLGSwKyLz— ISUCON公式 (@isucon_official) 2017年11月25日 ISUCONについては以下を参照ください。 isucon.net tagomoris.hatenablog.com チーム「MSA」のメンバーにコメントをもらいました。 mizuno-keita 「新卒から半年でKAYACに転職してきて2年、少しではありますが、自分の成長を実感することができました。 優勝できたことはもちろんうれしい

    ISUCON7でチームMSAが優勝しました! - KAYAC engineers' blog
    gfx
    gfx 2017/11/29
    “今回の優勝でカヤックオフィスに並ぶトロフィーが4つになりました”
  • Dockerで開発環境構築を10倍楽にしたはなし - KAYAC engineers' blog

    Lobi事業部 サービス基盤チームの長田です。 最近プロジェクト内で使用する開発環境にDockerを利用するようになったので、その紹介をします。 Dockerにしたってどういうこと? 公開済みのWebサービスに変更を加えて動作確認をする場合、番環境でそれを行うわけにはいきません。 ほとんどの場合はローカルマシンでWebサービスの全体または一部のコピーを動かして動作確認を行うことでしょう。 その後ステージング環境などの他の開発メンバーも触ることができる環境で動作確認やQAを行い、 問題がなければ晴れて番環境に反映、という流れが一般的かと思います。 この「ローカルマシンでWebサービスのコピーを動かす」部分にDockerを利用している、ということです。 Dockerにしてどうなった? Before 開発環境構築に1〜2日かかっていた After 開発環境構築がランチに行っている間に終わるよ

    Dockerで開発環境構築を10倍楽にしたはなし - KAYAC engineers' blog
    gfx
    gfx 2017/10/27
  • Golang 製の Android 向けテストアプリ配信ツール「alphawing」を公開しました - KAYAC engineers' blog

    昨年の Advent Calender ぶりの登場です。@m0t0k1ch1 です。 表題の件につきまして、実は 7/31 に公開された こちらの記事 の実績一覧の一番上に載せていただいてもいたのですが、改めてこちらで報告させていただきたいと思います。 alphawing とは https://github.com/kayac/alphawing TestFlight が 2014/3/21 をもって Android のサポートを終了 してしまったので、それを代替するためのツールとして開発したのが、この alphawing です。簡単に表現すると、「Android 用の TestFlight」です。表題の通り、サーバーサイドは Golang で記述されています。 アプリケーションの詳しい起動方法などについては README をご参照ください。 アプリケーションの概要 アプリケーションにひも

    Golang 製の Android 向けテストアプリ配信ツール「alphawing」を公開しました - KAYAC engineers' blog
    gfx
    gfx 2014/09/03
  • ISUCON3出題の裏側 - KAYAC engineers' blog

    acidlemonです。今日はもうなんだかいろんなところに記事を書かなきゃならなくててんてこまいとなっております。 さて、最初に告知です。 毎週カヤック技術部では金曜日の夜に技術部勉強会を行っています。今週末はISUCON3の優勝チームのtagomorisさんとkazeburoさんをゲストにお迎えして、出題担当のfujiwaraとともに今回のISUCONを振り返ってもらい、せっかくだから外部の人をバンバンよんで酒のみながらLTとかもしてもらっちゃおう! みたいな感じになっています。 追記(2011/11/11 20:15): kazeburoさんのスケジュールも確認取れましたので追記しました ということで、ISUCON3反省会というイベントを立てましたので参加希望の方はこちらから参加表明をおねがいします。費用はカヤック持ちで参加無料となっておりますので好きなだけビール飲んでいってください!

    ISUCON3出題の裏側 - KAYAC engineers' blog
    gfx
    gfx 2013/11/11
    “快諾は快諾なんですけど、賞金がどーんと100万円になるのならむしろ出場したいというのが本音でした”
  • 2013年の新卒研修と社内ISUCONやりました - (1) 研修編 - KAYAC engineers' blog

    4月になり、新人が入ってくる季節になりました。技術部新卒研修担当の fujiwara です。 これまで弊社技術部では特に技術部としての研修というものを行っていなかったのですが、今年は何かやりたいねということで人事部に7日間確保してもらい、主に acidlemon と2人で新卒8人に研修をすることになりました。 研修の資料などは GitHub でプライベートリポジトリを作って作業しており、それをまとめたものを GitHub上で kayac/newbie-training として公開しています。 どのような内容にするかは事前に昨年度の新卒を含めたエンジニア陣で(社内勉強会でビールを飲みながら)話し合い、 現場で実務に追われてしまうと身につきにくい基礎的な内容 コードを書ける人は多いけどLinuxサーバの操作は不慣れな人が多いので、そのあたりを底上げする内容 をメインに構成してみました。また、7

    2013年の新卒研修と社内ISUCONやりました - (1) 研修編 - KAYAC engineers' blog
    gfx
    gfx 2013/04/22
  • #8 「iOSのバージョン間の溝を埋めるテクニック」 tech.kayac.com Advent Calendar 2012 - KAYAC engineers' blog

    こんにちは、iOSプログラマーの_ishkawaです。 このエントリは tech.kayac.com Advent Calendar 2012 8日目の記事です。 テーマは「私の中のマイイノベーション 2012」です。 12月。恋人たちが心の溝を埋めていく中、僕はiOSバージョンの溝を埋めております。 今日はそのテクニックを紹介したいと思います。 それと、紹介するテクニックを使ったマイイノベーションも紹介します。 基中の基 iOSでは、バージョンによってクラス/メソッドの有無やプロトコルへの適合状況が異なります。 これらの状況の違いは以下の方法で判別することができます。 メソッドが存在するかどうか: respondsToSelector: クラスが存在するかどうか: [Class class] プロトコルに適合しているか: conformsToProtocol: これらの条件を以下のよ

    #8 「iOSのバージョン間の溝を埋めるテクニック」 tech.kayac.com Advent Calendar 2012 - KAYAC engineers' blog
  • tech.kayac.com Advent Calendar 2012 - KAYAC engineers' blog

    どう?最近パスタ巻いてる!? kenjiskywalkerだよ! スカイウォーカーって名前が付いてるけど スターウォーズはほとんど見たことがないんだ。不思議だね! さて、年の瀬も段々と近づいてきて、町はイルミネーションで華やかになり 恋人たちはお互いのプレゼントについて相談し、子供たちはなるべく大きな下を探している中 エンジニアは何をしているのかといえば、そう、アドベントカレンダーだね! ということで男だらけのテックカヤックアドベントカレンダーやるよ! テーマは「2012年 私の中のマイイノベーション」だけど 多分内容は関係のないものがほとんどだと思うんだ。面白いね! スケジュール 12/01 / @kenjiskywalker #1「おちこんだりもしたけれど、私はげんきです」 12/02 / @damele0n #2 「JavaScriptでおっぱいを動かす」 12/03 / @kyo

    tech.kayac.com Advent Calendar 2012 - KAYAC engineers' blog
    gfx
    gfx 2012/12/21
  • #5「GitDDLまじイノベーティブ」 tech.kayac.com Advent Calendar 2012 - KAYAC engineers' blog

    好きな IPA は志賀高原ビールの @soh335 です。 早くビール飲みたいのですが書かないと怒られるので今日は、隣の発明家が作った GitDDL というモジュールについて説明しますね。 (隣の発明家に任せると「GitDDLまじイノベーティブ(完)」としか説明してくれないので) なにするものなの 名前を見て通り、Gitdatabase の schema 管理をするものです。それ以前は、DBIx::Class::Schema::Versioned とかを使っていたようです。 仕組み まず、Git で管理されている schema ファイルを指し示すコミットのハッシュを database 上で管理します。 schema に変更があった場合、このコミットのハッシュが databse 上のものとで差異が生まれます。よって database 上の schema は期待する schema ではな

    #5「GitDDLまじイノベーティブ」 tech.kayac.com Advent Calendar 2012 - KAYAC engineers' blog
    gfx
    gfx 2012/12/06