タグ

ブックマーク / naoya-2.hatenadiary.org (68)

  • Cask - naoyaのはてなダイアリー

    昨年 ELPA で elisp を管理 - naoyaのはてなダイアリー に書いたとおり、昨今は Emacs にもパッケージ管理システムが搭載されいて、どこからか elisp をコピペしてきてその後管理できなくなる・・・みたいなことはなくなった。 ただ、じゃあ ELPA で全て解決したかというとそんなことはなくて、ELPA はパッケージのインストール自体は簡単にしてくれるけれども、それだけだった。 elisp の管理も Bundler のように入れたいパッケージ一覧を書いて bundle install すれば全部まとめて入るみたいな、そういうのが欲しい・・・と常々思っていた。 と思っていたら、Cask というのを見つけた。これがずばりそのものだった。 (source gnu) (source melpa) (source marmalade) (depends-on "ag") (dep

    Cask - naoyaのはてなダイアリー
  • GitHub 時代のデプロイ戦略 - naoyaのはてなダイアリー

    少し前までアプリケーションのデプロイと言えば capistrano などをコマンドラインから叩いてデプロイ、みたいなことをやっていたが、最近は少し様子が違うのでそのやり方、KAIZEN platform Inc. での事例を紹介する。 GitHub のイベントを契機に CI as a Service にデプロイを担当させる GitHub で Pull Request を送って開発するのが前提になっているのは以前にも紹介した。 最近は Travis CI や CircleCI などに代表される CI (Continuous Integration) as a Service があって、CI も自分たちで環境を構築しなくてもクラウドに任せることができる。KAIZEN では CircleCI を積極的に使っている。 これらの CI as a Service は基的に GitHub と連携するこ

    GitHub 時代のデプロイ戦略 - naoyaのはてなダイアリー
  • Infrastructure as Code - naoyaのはてなダイアリー

    今年の3月に 入門Chef Solo - Infrastructure as Code というを書いた。 その名の通り Chef の入門書なのだけど、このサブタイトルは "Configuration Management Tool (構成管理ツール)" でもなく "Provisioning Framework (プロビジョニングフレームワーク)" でもなく、はたまた "Automated Infrastructure (自動化されたインフラ)" でもなく、"Infrastructure as Code" にした。 この一年で Chef や Puppet にはずいぶんと注目が集まった。おそらく、AWS をはじめとするクラウドサービスがより広いユーザーに浸透したことで仮想化環境が前提になって、以前よりも頻繁にサーバーを構築し直したりする機会が増えたとかその辺がひとつ理由として挙げられると思う

    Infrastructure as Code - naoyaのはてなダイアリー
    nsyee
    nsyee 2013/12/16
  • RubyMotion を1年以上使い続けてみての雑感 - naoyaのはてなダイアリー

    RubyMotion Advent Calendar 2013 に何か書こう、ということでエントリ。 ご存知のように iPhone アプリの HBFav は RubyMotion で作っています。Objective-C ではなく。以前は Titanium Mobile で作っていましたが、去年にバージョン2として作り直すにあたって RubyMotion に移行しました。 RubyMotion に関しては以前、以下のエントリで概要を説明しています。 RubyMotion - naoyaのはてなダイアリー それから、今年 5月に開催した RubyMotion カンファレンスのスライドなどもあります。 実践RubyMotion - Speaker Deck RubyMotion が発表されたのは 2012 年の5月 とかで、それからずっと使い続けているので1年半近くが経ったことになります。App

    RubyMotion を1年以上使い続けてみての雑感 - naoyaのはてなダイアリー
  • 「書く」のは特別な道具 - naoyaのはてなダイアリー

    This is why you shouldn't interrupt a programmer (なぜプログラマの作業に割り込むべきではないか) という4コマ漫画が話題になっていた。これは別にプログラマではなくても「わかるわかる」という感じの話。 コメントを見ると、だから作業を中断してもすぐ再開できるように自分の考えることをなるべく書き出すようにしているという人が結構多かった。なるほど。 今日は雨が降ったせいで予定が一つキャンセルになったことだし、ちょうどいい機会なので、文章で何かを書くということについて自分が思っていることを書いてみようとおもう。以前 Software Design のドキュメントの書き方特集みたいな号に似たような趣旨の話を寄稿したのだけど、「書く」というのは単に物事を忘れないようにするための行為に留まるものではなくて、自分の考えを整理するための道具なのだ、ということが

    「書く」のは特別な道具 - naoyaのはてなダイアリー
  • Webサービス開発現場から / 近頃の開発のやり方 ・・・ Github と Pull Request とコードレビュー - naoyaのはてなダイアリー

    先日プレスリリースが出たのですが、KAIZEN platform という会社で技術顧問などをやっています。それから、一昨日自分も出たWebアプリケーション開発に関する勉強会 (資料) を開いたじげんという会社でも少し前から同じように顧問のような形で携わっています。 自分が関わっている会社のPRも含めて、すこし、2013年現在のWebサービス開発の現場感、やり方みたいなものを書いてみたいと思う。ただ、自分の利益があるところの話だけではフェアではないので、Webエンジニアならよく知っているであろう Qiita を運営しているインクリメンツの様子も合わせて紹介する。 KAIZEN platform KAIZEN platform が提供しているサービスは planBCD という A/B テストの SaaS で、Webサイトのコンバージョンだとかを画面の構成要素を変えて効果測定したいとか、そういう

    Webサービス開発現場から / 近頃の開発のやり方 ・・・ Github と Pull Request とコードレビュー - naoyaのはてなダイアリー
  • Helios - naoyaのはてなダイアリー

    次にエントリを書くときは HBFav の次のバージョンの話、と思っていたのだが AppStore のレビューに時間がかかっているので、なんとなく閑話休題的に更新しておこう。 Helios について。ロゴがかわいい。 先月くらいに何かの拍子で自分の周囲でも話題になった。今年の4月くらいに Heroku からリリースされた、MBaaS (Mobile Backend as a Service) を構築するためのフレームワーク。実際には OSS なので Heroku からというか Heroku 社員の mattt さん によるもの。 mattt さんはご存知、iOS の AFNetworking や TTTAttributedLabel そのほかの開発者として有名なスーパーハッカーである。Heroku 勤務ということで、Heroku の親会社である Salesforce が開催の Salesfo

    Helios - naoyaのはてなダイアリー
  • HBFav2 をリリースしました - naoyaのはてなダイアリー

    http://hbfav.bloghackers.net/ 1年以上前に HBFav という、はてなブックマークの「お気に入り」を読むための iOS アプリを作ってリリースしましたが、今回一から実装し直してバージョン 2.0 という形で先ほどリリースしました。App Store からダウンロード可能です。 HBFav って? HBFav は、はてなブックマークで「お気に入り」に追加している、すなわちフォローしているユーザーのブックマークやコメントをタイムラインのようにして閲覧するアプリです。個人的にはてなブックマークで最も重宝しているのがお気に入り機能で、そのユースケースを中心にしたアプリが欲しくて作ったというのが元々の動機でした。 なんで作り直したの? バージョン 1.0 はあまり時間の無い中コンセプト優先で作ったということもあってお世辞にも品質が良いとは言えない代物でした。重たいし、落

    HBFav2 をリリースしました - naoyaのはてなダイアリー
  • Docker の Remote API + serverspec で CI - naoyaのはてなダイアリー

    昨日 http://d.hatena.ne.jp/naoya/20130620/1371729625 で書いたように Docker を使えば、欲しい VM を "任意の状態" で簡単にかつ" "瞬時に" コピーして作り出すことができる。 「任意の状態」というのは、例えば「OS は CentOS で、Ruby と Chef が入っている」みたいな VM のこと 「瞬時に」というのは当に瞬時。VM の起動時間を待ったり、Ruby や Chef を入れる時間を待つ必要はない serverspec でテストをする場合、真っ新な VM を用意してそれにプロビジョニングを行って、その後に破棄するみたいなことを良くする。このとき「真っ新なVM」を立ち上げるのに、Vagrant などが使えるが、Vagrant だとテストの度に VM を一から作り直す・・・つまり vagrant up しなければいけない

    Docker の Remote API + serverspec で CI - naoyaのはてなダイアリー
  • Docker (土曜日に podcast します) - naoyaのはてなダイアリー

    Docker をいじって遊んでいる。 http://www.docker.io/ Docker は PaaS ベンダの DotCloud がその PaaS のバックエンドとして使っている (?) ミドルウェアを公開したもの。適当な条件の VM をポコポコ生み出してはテストや実際の運用に使うことができたりするもの。例えば「RubyBundler が入っている VM」みたいなのを設定で作っておくと、後日何か Ruby でアプリケーションを動かしたいと思ったときにそのイメージをベースに VM を作ってデプロイしてやればすぐにアプリケーションが動き出す。そもそも PaaS がやっているのはそういう事で、それを汎用化したのが Docker。Travis CI のような、各言語ごとの実行環境が整った VM みたいなものに任意のコードを渡してビルドさせる、みたいなプラットフォームを作るのにも使える

    Docker (土曜日に podcast します) - naoyaのはてなダイアリー
    nsyee
    nsyee 2013/07/31
  • テストエンジニアリング、DevOps のこれから #testingcasual - naoyaのはてなダイアリー

    一昨日 Testing Casual Talks #1 に参加した。名前の通り、ソフトウェアテストに関するカジュアルなカンファレンス。とても面白かった。すこし思ったところを書いていこう。 テストのエンジニアリング トップバッターの @ikasam_a さんの発表では Software Engineer in Test at DeNA ということで、氏が勤務先でテストエンジニアリング部門を立ち上げていくにあたってのいきさつや背景といったところが述べられていた。 テストは開発者の生産性を向上するためにある、生産性向上のためにテストを書くテストエンジニア、近年複雑化するテストの実行環境を構築するのもテストエンジニアの役目、"Testing Activities SHOULD be in Developments" ─ テスト活動は (従来型のQAのように開発の外ではなく) 開発の中で行われるべき

    テストエンジニアリング、DevOps のこれから #testingcasual - naoyaのはてなダイアリー
  • ProMotion - naoyaのはてなダイアリー

    最近 RubyMotion ユーザーの間で ProMotion という名前を良く聞くようになった。http://rubymotion-wrappers.com/ の説明を観ると A full featured RubyMotion framework that makes iPhone development less like Objective-C and more like Ruby, designed to get up and running fast. となっていて、RubyMotion 向けのフレームワーク、ということらしい。 ドキュメントにあるサンプルコードは以下のようになっていて、 class AppDelegate < PM::Delegate def on_load(app, options) open RootScreen.new(nav_bar: true) en

    ProMotion - naoyaのはてなダイアリー
  • RubyMotion のテスト、継続的インテグレーション - naoyaのはてなダイアリー

    昨日は RubyMotion のもくもく会でした。 先日の RubyMotion Kaigi 2013 で 実践RubyMotion という題目で発表したのだけど、テストについてはprintデバッグ上等だ、このクソムシがとか言ってかなり適当に済ませてしまった。ので、もくもく会ではテスト周りに手をつけるぞと思い、そういえば Travis CI が RubyMotion に対応してたのも思い出し RubyMotion のテストを Travis CI で回すのを検証した。 が、手間取るかと思った Travis CI 周りはとっても簡単で、.travis.yml に language: objective-c と書くだけであっさり動いてしまった。 というわけで RubyMotion アプリの継続的インテグレーションは .travis.yml を一行書けば完了です。終わり・・・じゃあまったくブログ記

  • マルチコア時代のロードアベレージの見方 - naoyaのはてなダイアリー

    ちょっと煽り気味のタイトルですが、CPU がマルチコアになり 2個、4個と増えていく中 Linux の負荷の指針になるロードアベレージをどう読むべきか、という話です。気になったところを少し調べたのでそのまとめを。 http://d.hatena.ne.jp/naoya/20070222/1172116665 でも書いたとおり、Linux のロードアベレージは「ロードアベレージは過去1分、5分、15分の間の実行待ちプロセス数の平均数 = 実行したくても他のプロセスが実行中で実行できないプロセスが平均で何個ぐらい存在してるか」を示す値です。ボトルネックが CPU、メモリ、ディスク等々どこにあるかは関係なく、仕事の実行までにどれぐらい待たされているかを示す値なので、システムのスループットを計測する指標の入り口になる値です。 このロードアベレージですが、実装を見るとランキュー(待ち行列)に溜まった

    マルチコア時代のロードアベレージの見方 - naoyaのはてなダイアリー
  • Vagrant + Jenkins の CI を AWS でも回す - naoyaのはてなダイアリー

    昨晩 Jenkins と Vagrant で CI だ、と書いたら という反応があった。確かに、可能なら物理サーバに依存しない形でテストできるとより嬉しい場面もありそうですね。 しかしそこは Vagrant。Vagrant はバージョン 1.1 から、バックエンドを VirtualBox だけでなく AWS (EC2) などの IaaS を指定して仮想サーバーを作ったり壊したりできるようになっています。詳しくは http://d.hatena.ne.jp/naoya/20130315/1363340698 この辺を。この機能を利用すれば昨日の Jenkins + Vagrant のフローをほとんど変えずに、EC2 のインスタンスでのインテグレーションテストができそうですね。 速見もこみち「では、早速やっていきましょう。」 Multi VM でローカル/リモート両対応に せっかくなので Vi

    Vagrant + Jenkins の CI を AWS でも回す - naoyaのはてなダイアリー
  • Vagrant + Chef Solo + serverspec + Jenkins でサーバー構築を CI - naoyaのはてなダイアリー

    Jenkins おじさんと戯れること半日、うまくいったので備忘録を残しておく。 やりたかったのは Chef で構築したサーバーを Jenkins で CI する、というもの。このときサーバーはテストが終わる度に破棄して、テスト開始時に再度真っ新な状態から立ち上げたい。(こういうサーバーを壊して作ってというテストはなんという名前で呼ばれるのだろう?) 仮想サーバーを破棄/作成をプログラマブルにやるのはもちろん Vagrant プロビジョニングは Chef Chef の環境を整えるのに knife-solo 0.3.0.pre3 テストは serverspec コードは Github に上げる (https://github.com/naoya/jenkins-vagrant-test) CI は Jenkins という構成になっている。ひとまず Jenkins や Vagrant はローカル

    Vagrant + Chef Solo + serverspec + Jenkins でサーバー構築を CI - naoyaのはてなダイアリー
  • Reveal - naoyaのはてなダイアリー

    Reveal (http://revealapp.com/) なる iOS 向けのランタイムインスペクタなるものを知人のツイート経由で見つけた。ランタイムインスペクタとは何か ・・・ "Reveal brings the power of tools like Firebug and Web Inspector to iOS developers." ということでiOS アプリ用の Firebug みたいなのだと思えば良い。 動画を観てると確かにすごい。3D で動かしながら View の階層を手繰ってアプリのビューがどういう構造になっているかを見ていくことができる。更に動的にパラメータを変更して大きさや動きを変える、なんて Firebug の css の編集みたいなこともできるようだ。ベータ版は無料のようだ。 これは捗る。 RubyMotion で動かす ドキュメントを見てみたところ Re

    Reveal - naoyaのはてなダイアリー
  • Coveralls + Perl - naoyaのはてなダイアリー

    Coveralls は Github に置いているソースコードのテストカバレッジを git push の度に調査して報告してくれるクラウドサービス。「カバー率100%を維持したいなら継続的インテグレーション (CI) のレポーティングにテストカバレッジも含めちゃえばいいじゃない」という貴族向けのサービスです。いえ、貴族はフィクションです。 こんな感じでモダンなデザインで色々教えてくれる。各行が何回テストされたかみたいな詳細なレポーティングもある。 Travis CI と同じく Github の README なんかに貼り付けるバッジがあります。というか Travis CI なんかのCIツールと連携して Coveralls にレポートを投げるのが前提になっているようです。 つい最近 プロトタイプ開発用のRailsプラグイン「Chanko」を2.0.0にアップデートしました - クックパッド

    Coveralls + Perl - naoyaのはてなダイアリー
  • git-gutter.el - naoyaのはてなダイアリー

    寝れないので変な時間にブログを書いたりする。 時折思い立ったように Emacs Lisp を見直して色々導入を試みたりするも、結局割り当てたキーバインドを忘れてたりして定着しない、というものは多い。そんな中でもここ1, 2ヶ月くらいで定着したのが git-gutter.el。 このように緑のプラス記号なんかが出て git で管理しているファイルを編集した場合の差分がどこかが一目でわかる。 多くの elisp がそうなんだけど、導入する前までは便利そうだけどそこまで必要かな? と思いつつ入れてみたらもう手放せなくなった、そういう類です。ぼーっとしながらコード書いてる時でも、あそことあそことあそこを編集したんだなってのが git diff とかしなくても分かる。 これを入れるとちょっと動きがモッサリするみたいな話もあるけど、作者の id:syohex さんが鋭意改善中 (http://d.ha

    git-gutter.el - naoyaのはてなダイアリー
  • 宮川さんPodcast ep6、KDP での本の作り方 - naoyaのはてなダイアリー

    第6回は伊藤直也さん (@naoya_ito) をゲストに迎えて、Kindle 出版、GitHubGoogle Reader などについて話しました。 ほぼ週一くらいで配信されている @miyagawa さんの Podcast、第6回目のゲストで出演しました。第1回目に続き、これで自分は2回目ですね。だんだん往年のいいともみたいになっていくのだろうか。 それはともかく、内容は先日だした Kindle の 入門 Chef Solo に絡めて KDP (Kindle Direct Publishing) の話、それから Google Reader にまつわる RSS の話に関して。二人とも KDP での出版経験があるのと、RSS に関しては昔二人でを書いたりした当時のホットな話題でお互い良く知ってるしというので、面白く話せました。 Chef が実際 KDP でどのくらいダウンロードされて

    宮川さんPodcast ep6、KDP での本の作り方 - naoyaのはてなダイアリー