タグ

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

  • 【決定版】中級猫でもわかる正規表現再入門 - KAYAC engineers' blog

    正規表現 初めまして!技術部サーバーチームのダリエンと申します。正規表現は役に立つ知識なので、勉強してみました。 では、正規表現について調べた知識をシェアしたいと思います。 こちらは Tech Kayac Advent Calendar 2017 の25日目の記事になります。 イントロダクション 定義 検索パターンを象る文字列 文字列の集合を一つの文字列で表現する(ja.wikipedia.org) 英語:Regular Expression(s) / Regex 何のために使いますか? ウェブブラウザーエクステンションやIDEやコードなどで: 文字をそのまま検索 (⌘/Ctrl+Fと全く同じ) パターンの一致 ⌘/Ctrl+Fは簡単でしょう? そうです。しかし、パータン一致は? 下のテキストを検討してください: JPY152 JPY40501 USD501 IDR1261 JPY999

    【決定版】中級猫でもわかる正規表現再入門 - KAYAC engineers' blog
  • Dockerで開発環境構築を10倍楽にしたはなし - KAYAC engineers' blog

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

    Dockerで開発環境構築を10倍楽にしたはなし - 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
  • Dockerで非エンジニアでも開発環境を上げ下げできる、mirageというツールを作りました - KAYAC engineers' blog

    いやー今年もISUCONの予選参加募集がはじまりましたね! 昨年は出題側だったので胃が痛かったですが、今年は参加側ですので大変楽しみにしております。@acidlemonです。 Docker使ってますか? さてみなさん、Docker使ってますか? 使ってる? 使ってない? ぼくは使ってませんでした。えー今どきBlue-Green Deploymentやってないの? Immutable Infrastuctureじゃないの? と言われそうですが、世の中にはいろんなしがらみとかもあってなかなか簡単にエイヤーでコンテナに移行できるわけでもないのは皆さんなんとなく感じているのではないでしょうか。 とはいえ、最近これだけ話題になっているDockerですので、そろそろ使ってみたいなぁ…ということで、まずは開発環境をDockerで上げられるようにしました。 Dockerでコンテナを作るときには2つのアプロ

    Dockerで非エンジニアでも開発環境を上げ下げできる、mirageというツールを作りました - KAYAC engineers' blog
  • SEO対策 | エンジニアでも知っておくべき7つのチェックリスト | tech.kayac.com - KAYAC engineers' blog

    この記事は tech.kayac.com Advent Calendar 2013 23日目の記事です。 こんにちは!最近rubyを書かせていただいております@yumiyonです。 技術の話が続きましたので、今日は変わってSEO(Search Engine Optimization)の話をしたいと思います。 創ったサービスは、なるべくそのサービスに関連するクラスタの方々に知って使ってほしい . . . ! と思うのは世の常です。 というわけで、わたしが普段Webサービスを創るときにチェックしている「最低限」気にするべきSEOのチェックリストをご紹介いたします。(2013年12月現在時点での内部施策) 目次 検索エンジン向けのXMLサイトマップを作成する パンくずリストを作成する 狙いたいキーワードに沿った適切なページタイトルを設定する 1ページ1テーマを徹底する サイトの表示速度は最大限に

    SEO対策 | エンジニアでも知っておくべき7つのチェックリスト | tech.kayac.com - KAYAC engineers' blog
  • #21 AngularJS + soundcloud API で俺得 music player をつくる - KAYAC engineers' blog

    この記事は tech.kayac.com Advent Calendar 2013 21日目の記事です。 こんばんは。13新卒の @m0t0k1ch1 です。 @mackee_w さんに立てていただいた scala フラグを倒させていただきまして、、ここ1週間くらい1人でこそこそやっていたことについて書きたいと思います。内容は表題そのままの感じです。 soundcloud について soundcloud 有名な無料音楽クラウドサービス イケてる remix が多いので、ここで音楽を聴きながらコードを書くことが大半 ローカルに音楽ファイルを持ちたくないのでうれしい soundcloud に対して最近感じていた不満 家ではリピート再生が(曲単位・プレイリスト単位ともに)できないのでつらい SoundCloudRepeat.com もあるけど、決め打ちでリピート再生というよりかは、お気に入りの

    #21 AngularJS + soundcloud API で俺得 music player をつくる - KAYAC engineers' blog
  • vagrant-configspecを使ってプロビジョニングする - KAYAC engineers' blog

    @nobu_ohtaです。 teck.kayac.com Advent Calender 2013 19日目のエントリです。 今回、advent calendarを口実にvagrant-configspecをリリースしました。 インストールは vagrant plugin install vagrant-configspec です。 コード自体は https://github.com/ankoromochi/vagrant-configspec で公開しています。 動機 configspecを触ってみたかった。 mizzyさんのブログで紹介されているように、immutable infrastructureという文脈で出てきた、冪等性や依存関係をあまり気にしない感じのconfiguration management tool。 同じくmizzyさんが作者のサーバの状態のテストを行うserve

    vagrant-configspecを使ってプロビジョニングする - KAYAC engineers' blog
  • #18 基本に立ち返る - KAYAC engineers' blog

    どうも。運用のプロフェッショナル、セト神こと @mix3 です。(ゝω・)vキャピ teck.kayac.com Advent Calender 2013 18日目のエントリです。 最近の自分は割と真面目に人生の迷子みたいな感じになってきているので、一旦立ち止まって基に立ち返ろうと思います。 自分の基 それは Wicket! Wicket は Java のウェブアプリケーションフレームワークで結構特徴的だったやつです。 XMLレス web.xmlへの単純な記述のみ 設定はコードで オブジェクト指向 ページもコンポーネントという形でオブジェクトにし、匿名クラスで振る舞いを変える よく説明で使われてたのが「Swingみたい」 ステートフル モデルはシリアライズ可能にしておいて、セッションにぶち込む 結構豪気 こんな感じ。 Java で ウェブアプリで何が辛いって xml地獄が当に地獄だ

    #18 基本に立ち返る - KAYAC engineers' blog
  • #4 今年お世話になったgemその1 KAYAC Advent Calendar 2013 - KAYAC engineers' blog

    こんにちは、@Konboi です! このエントリーはtech.kayac.com Advent Calendar 2013の4日目のエントリーです。 今日のエントリーでは今年1年間、クライアントワークのプロジェクトでお世話になったgem10選の紹介とそれらの簡単なtipsを、 自分と明日担当の@hilotterの2人で2回に分けて紹介したいと思います! ( カヤックはPerlの会社として知られていますが、クライアントワーク事業部ではRailsを使用したプロジェクトも数多くあります!) それでは、早速いってみましょう! carrierwave まず1つ目に紹介するのは、ファイルアップローダの決定版 carrierwaveです。 carrierwaveは下記のように設定をしておけば画像のアップロード時に s,m,l のサイズをまとめて生成してくれます! 呼び出す側では、 .url.(:s),

    #4 今年お世話になったgemその1 KAYAC Advent Calendar 2013 - KAYAC engineers' blog
  • エンジニアとして継続したい3つのこと - KAYAC engineers' blog

    777ブログウェイ「つくるための三種の神器」というテーマで、 日はカヤック京都支社の技術部アルバイトで働いている高江洲(たかえす)がご紹介します。 エンジニアとして働く上で、大切だなぁと思う以下3つのことについて自分が利用している(利用し始めた、今後も継続したい)ことを3つ取り上げてみたいと思います。 1. 情報収集 2. タスク管理 3. テスト駆動開発 1.情報収集 情報収集手段といえば、はてブの人気エントリーやヤフーのトップニュース、RSSリーダーなど様々な手段がありますが、最近はもっぱらGunosy(グノシー)を使っています。 TwitterやFaceBookでログインすると、興味のある分野についてのおすすめ記事のまとめを1日1回メールで受け取る事ができます。大手のニュースサイトから個人のブログまでの幅広く、僕は朝の通勤中にひと通り目を通す感じで使っています。 使い始めて2ヶ月く

    エンジニアとして継続したい3つのこと - 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
  • jsdo.itでHTML5実力テストを公開しました - KAYAC engineers' blog

    なめこ栽培中のago(@kyo_ago)です。 弊社が運営しているjsdo.itにて、この度HTML5実力テストを公開したのでご紹介します。 HTML5実力テストでは、HTML5関連の問題をJavaScriptコース、HTML/CSSコースに分けて受けることができます。 今回わたしはJavaScriptコースの問題作成を担当したので、HTML/CSSコースを受けてみましたが56点でした。 何回受けても大丈夫なのでぜひ満点を目指してみてください。 テストの結果はjsdo.itのユーザページへbadgesとして表示されます。 カヤックでは高得点な技術者も募集しています!

    jsdo.itでHTML5実力テストを公開しました - 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
  • 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はまだニガテで ><」というヒトでも安心して始められるのでは

  • 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
  • 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
    atm_09_td
    atm_09_td 2010/10/30
    いろいろ便利そう。
  • emacsの矩形選択モード紹介 - KAYAC engineers' blog

    ようやく風邪が治りました。nagata(@handlename)です。 みなさん、矩形選択モードというものをご存知でしょうか? 矩形というのは長方形のことです。 矩形選択というのはつまり、領域を四角形に選択することを指します。 通常選択 矩形選択 通常テキストエディタは行毎に処理を行いますが、 矩形選択を活用すると行をまたいだ操作を行うことができます。 今回はemacsの矩形選択モードを3種類ほど紹介してみたいと思います。 標準の矩形選択 emacsに最初から用意されている関数です。 それぞれの関数にはそれぞれキーバインドが設定されています。 コマンド呼ばれる関数動作 C-x r cclear-rectangle矩形領域を空白文字に置き換える C-x r ddelete-rectangle矩形領域を削除する C-x r oopen-rectangle空白文字で埋まった矩形領域を挿入する C

    emacsの矩形選択モード紹介 - KAYAC engineers' blog
    atm_09_td
    atm_09_td 2010/08/30
    矩形選択はまだ慣れない。
  • 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