brew-caskを入れればhomebrewでdmgとかpkgのGUIアプリも入れられるらしいのでやってみました。

下記のようなBrewfileを作って同じディレクトリで$ brew bundleするだけ。
update
upgrade

install vim
install pwgen
install readline
install openssl
install imagemagick
install hub
install node
install curl-ca-bundle
install heroku-toolbelt
install rbenv
install ruby-build
install mysql
install postgresql
install qt

tap 'phinze/cask'
install brew-cask

cask install google-chrome
cask install firefox
cask install dropbox
cask install virtualbox
cask install vagrant
cask install skype
cask install macvim
cask install coteditor
cask install onepassword
cask install anvil
cask install appcleaner
cask install mplayerx
cask install sequel-pro
cask install google-drive
cask install google-hangouts
cask install hipchat
cask install libreoffice
cask install lingrrader
cask install notational-velocity
cask install utorrent
cask install cyberduck

tap 'komagata/mycask'

cask install line
cask install gyazo
cask install gitter
cask install avast

本家がものすごい勢いで対応アプリ増やしてるので自分用にCaskを書いたのは極僅かでした。System Preferencesとかもこれで設定できないかなあ。

komagata/mycask

下記の神ブログ様の記事通りで行けました。

werckerでrspecとcucumberのCI環境を作る - zephiransasのチラシの裏

怖話はcucumberじゃなくてrspecのfeature specですが変わんないです。(そういうところは多いと思います。)

ciercleciは(xvfbやqtの)ノー設定で行けたのでHeroku Addonからならciercleciも無料なのでお勧めです。

怖話のwercker.ymlを一応貼っときます。

services:
   - wercker/mysql
build:
    steps:
        - rvm-use:
            version: 2.1.0
        - script:
            name: Make tmp directory
            code: mkdir tmp
        - script:
            name: Enable virtual display
            code: |-
              export DISPLAY=:99.0
              start-stop-daemon --start --quiet --pidfile /tmp/xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -screen 0 1024x768x24 -ac +extension GLX +render -noreset
              sleep 3
        - install-packages:
            packages: libqtwebkit-dev
        - bundle-install
        - rails-database-yml:
            service: mysql
        - script:
            name: echo ruby information
            code: |
                echo "ruby version $(ruby --version) running"
                echo "from location $(which ruby)"
                echo -p "gem list: $(gem list)"
        - script:
            name: Set up db
            code: RAILS_ENV=test bundle exec rake db:schema:load
        - script:
            name: Run RSpec
            code: bundle exec rspec spec

16x16の画像を作ってPreviewでSaveとかExportする時、formatのプルダウンを・・・

Option + クリックするとMicrosoft Icon形式が選べるようになる!

こんなんわかるかー!

HipChatに対応してるから楽。というよりPivotalのようにHipChatに対応してないのは少数派。CircleCIはHeroku Addonなら今のところprivate reposも無料なのでお得。

  • HipChatのAPI Auth Tokensのページでauth tokenを作成しとく。
  • HipChatのRoom API IDsのページで通知したいRoomのIDを知る。
  • https://www.pivotaltracker.com/projects/プロジェクトID/integrations

    Pivotal側がちょっと分かり辛いんだけど、上記のようなURLにあるActivity Web Hookにroom_idとauth_token付きで登録する。(v5では動かないのでv3にする必要があるので注意。)

    https://api.hipchat.com/v1/webhooks/pivotaltracker/?auth_token=トークン&room_id=ルームID

    HipChatのPivotal Tracker Integrationを参照すればignoreなどもっと細かい設定ができることがわかる。

以前はコレだったけど、

puts "-----------------------------------"
puts @posts.inspect
puts "-----------------------------------"

railsのdebugの疑問 - komagata

今はputsしてPowのログを見る方式にした。(ログを見るのはtailかConsole.app)

# app/controller/home_controller.rb:
class HomeController < ApplicationController
  def index
    puts 'foo'
  end
end

Powの標準出力と標準エラー出力はlogに向いてるのでただputsするだかけなのは楽だ。

アプリの一部では使うからjbuildrのgem入れてるけど基本的にscaffoldでjson使いたくない場合。

# config/application.rb:
module Rails
  class Application < Rails::Application
    config.generators do |g|
      g.jbuilder false
    end
  end
end

指定したIPからの接続しか受け付けない(古いタイプの)システムと連携したい場合にHerokuだと困る。

ProximoというAddonは固定IP付きのproxyを提供してくれる。rest-clientとかで接続するときにproximoの提供するproxyを設定してリクエストすればOK

require "rest-client"

RestClient.proxy = ENV["PROXIMO_URL"]
res = RestClient.get("http://api.someservice.com/endpoint")

puts "status code", res.code
puts "headers", res.headers

これで固定IP + https + 証明書が必須なシステムとかとも連携できる。httpsの通信をhttp proxy経由で可能かな?とちょっと心配だったけどproxyは中身知らんぷりでそのまま転送するので大丈夫。

proximoはリクエスト数がPlan毎に決まってるので必要なリクエストでだけproxy経由して節約する。

$ curl -x http://proxy.com:8080 http://example.com

port指定しないとデフォルトでは1080番にアクセスしに行く。知らないとハマって死ぬ。

おまけ

SSLの証明書とパスワード付きでアクセスする。cert.pemはprivate keyとclient certをconcatinateしたもの!これを知らない者は死ぬ!

$ curl -x http://proxy.com:8080 -E cert.pem:password http://example.com
% brew update
% brew upgrade ruby-build
% CONFIGURE_OPTS="--with-openssl-dir=`brew --prefix openssl` --with-readline-dir=`brew --prefix readline`" rbenv install 2.1.0
% rbenv global 2.1.0
% gem install bundler rbenv-rehash
% rbenv rehash

バージョンのパッチレベル表記がシンプルになったのは気持ちいいですね。